SESS - 55 serija: pirmasis Lunos buveinis

Nors anksčiau OSX naudojau MAMP ir AMPPS, tiesiog bandymų tikslais, šis klausimas yra tikras gamyba svetaines „Apache“ serveriuose.

Jei turėčiau domeno vardą www.example.com - jei tai buvo „Apache“, įdiegtame kaip „sudo apt-get“ sistemoje „Linux“ (galbūt „Debian“ ar „Ubuntu“), o ne per GUI, pvz., MAMP ar AMPP, ar tai nebūtų /var/www/public_html/www.example.com ar būtų /var/www/public_html/example

Yra /var/www/public_html/yoururlhere labiausiai paplitęs „Linux“ serverių sąrankos tipas?

Tačiau ar taip gali būti /var/www/www.example.com arba /var/www/example ?

Pavyzdžiui, jei turėčiau padomenį, http://canada.example.com, ar būtų:

/var/www/public_html/example/canada

arba

/var/www/public_html/www.example.com/canada

Tokiam URL kaip http://www.example.com/~site1 ar būtų /var/www/public_html/example/site1 ar tai reikalautų kokios nors mod_rewrite formos?

Apskritai, kas yra įprasčiausias būdas daryti tokius dalykus URL, kuriuose „Linux“ pagrindiniuose kompiuteriuose naudojami „Apache“, ypač pagrindinėse interneto svetainių talpinimo įmonėse?

  • Rekomenduoju ištirti kiekvieno domeno įkalinimą ir leisti jiems veikti kaip kiekvienos svetainės vartotojui. pvz /home/site1/public_html.

ar tai nebūtų aplanke /var/www/public_html/www.example.com, ar būtų / var / www / public_html / example

Tai yra visiškai asmeninis skambutis, nes jis (visais bendrais atvejais) neturi jokių techninių pasekmių tiek pasirinktam inkaro keliui, tiek kaip jame sukonfigūruojate dalykus.

Taigi administratorius turi nuspręsti, ką daryti. Kai kurie aspektai, į kuriuos reikės atsižvelgti, norint pasirinkti optimalią schemą:

  • kaip tvarkomi leidimai? vienas vartotojas turi prieigą prie visų svetainių, ar po vieną kiekvienoje svetainėje? Kaip jie pasiekiami: ssh, sftp, ftpir kt.
  • kaip valdomos interneto svetainės? visi pagal tą patį httpd arba apache vartotojo abonementą, ar turite atskirą sistemos paskyrą kiekvienai svetainei?
  • kaip tvarkomos atsarginės kopijos? Ar reikia vietoj visko kartu daryti keletą smulkių (tik vienos svetainės)
  • duomenų kiekis ir kvotos: tam tikru momentu visos to paties pagrindinio kompiuterio svetainės varžysis dėl įvesties / išvesties prieigos ir centrinio procesoriaus, taigi tam tikru momentu, jei norite padaryti vieną kopiją prie kito kompiuterio, kokią kopiją turėsite padaryti.

Tai, kas „skaito“ natūraliau, ir galimybė, pavyzdžiui, naudoti automatinį užbaigimą svetainės pavadinime, jei jis egzistuoja kaip failų sistemos katalogas.

„Masiniame“ virtualiame priegloboje galite rasti net kitas schemas:

  • atvirkštinės etiketės domene (nes iš esmės domenų vardai skaitomi iš dešinės į kairę): /var/www/public_html/com/example/canada, /var/www/public_html/com/example/www ir kt.

  • kad tam tikrame kataloge nebūtų per daug failų / katalogų (nes failų sistemos netinkamai tvarko šį atvejį), atlikite tam tikrą maišymą, dažnai remdamiesi ankstesniu punktu, nes kitaip dažnai pradėsite nuo www kad nebus pakankamai diskriminuojama: /srv/web/example/f/i/www.first.example, /srv/web/example/s/e/www.second.example, /srv/web/example/t/h/www.third.exampleir kt. (svetainėms www.first.example, www.second.example, www.third.exampleir kt.)

Esu tikras, kad galite įsivaizduoti kitas schemas. Jei svetaines tvarko tam tikras skydelis, pats skydelis gali savo keliu tvarkyti failus sistemoje.

URL, pvz., Http://www.example.com/~site1

Paprastai „Unix“ naudojama standartinė „Apache“ ~ kaip labai specifinis kelio elementas, ir tai tvarko mod_userdir paprastai susieti ankstesnį URL /home/site1/public_html jei site1 yra „Unix“ vartotojas. Bet viskas priklauso nuo „Apache“ konfigūracijos ...

Žr. Https://httpd.apache.org/docs/2.4/mod/mod_userdir.html

Svetaines galima aptarnauti beveik bet kuriame kataloge. Mačiau /var/www, /srv/wwwir /home/username tarp kitų. Pagal šią giją srv katalogas yra skirtas „iš šios sistemos teikiamiems duomenims“, todėl tai atrodo logiška. Tai, ką aš paprastai naudoju šiomis dienomis, bet aš manau /var/www vis dar yra labiausiai paplitęs.

Kalbant apie kelių svetainių talpinimą, standartinė procedūra yra naudoti atskirą katalogą kiekvienai svetainei, dažnai kiekvienoje turint „viešąjį“ pakatalogį. Jie gali būti įvardijami kaip domenas ar dar kažkas, kas padeda juos atskirti. Taigi, pavyzdžiui /var/www/example.com/public ir /var/www/sub.example.com/public

Priklausomai nuo to, kokias svetaines talpinate, žurnalams galite naudoti atskirus katalogus. Galite naudoti kelis katalogus, tokius kaip /var/log/apache2/example.com arba šalia savo viešojo katalogo turite žurnalų katalogą, t /var/www/example.com/logs

  • Turėjau apie tai pagalvoti, esu įpratęs prie bendrų kompiuterių, bet bandau išmokti valdyti savo svetainę taip, lyg būčiau žiniatinklio prieglobos savininkas, naudodamas seną kompiuterį kaip „Linux“ serverį.

Tai gali būti šiek tiek keblus klausimas. Džiaugiuosi klausime matydamas „Ubuntu“. Tačiau trūksta, ar bus naudojamas priegloba, ar net valdymo pultas. Čia pasidaro keblu. Leisk man paaiškinti.

Prieš daugelį metų, kai buvo išleistas „Apache 2.0“, buvo atlikti struktūriniai pakeitimai, kurie ne visada buvo įgyvendinami. Anksčiau visos svetainės konfigūracijos buvo dedamos į „httpd.conf“, kuri buvo pačios „Apache“ konfigūracija. Tai nebūtinai buvo blogai, tačiau buvo atliktas teigiamas konfigūracijos pakeitimas, kuris buvo saugesnis ir paprasčiau valdomas. Su šiuo pakeitimu kilo ir tebėra dvi problemos. Pirma, „Apache“ nekūrė įvairių OS diegimų versijų, o du - ne visi valdymo skydai tuo metu laikėsi geriausios praktikos ir jų nekeitė.

Pavyzdžiui, „Ubuntu“ nurodė atnaujinti konfigūracijos schemą, o „Redhat“ to nepadarė. Valdymo skydelio pusėje „Webmin“ / „Virtualmin“ atnaujino konfigūravimo schemą, o „cPanel“ neatnaujino. Matai, kur einu?

Prieglobai „cPanel“ naudojama visuotinai. Tai gaila, nes mes dažnai valome netvarką čia. Daugumai, kurie priglobia savo svetaines, rasti saugumo ir veiklos problemų, kurių niekada neturėtų būti.

Kadangi naudoju tik „Ubuntu“, galiu pasakyti, kad „Apache“ diegimas yra geras ir išliks, jei taip pat naudosite „Webmin“ arba „Virtualmin“. Tačiau jei nuspręsite naudoti „cPanel“, „Apache“ konfigūracija bus kuo prastesnė. Jei nuspręsite nenaudoti valdymo skydelio, jums turėtų būti gerai.

Štai kas atsitinka.

„Redhat“ diegimai ir „cPanel“ diegimai sukurs žiniatinklio erdvę aplankuose / var / httpd / html arba / var / www / public_html. Kartais šis katalogas bus skyriuje, kuris yra mažas, atsižvelgiant į senas tradicijas, kai svetainės buvo mažos. Tai ne visada, tačiau aš mačiau pakankamai kartų, kai svetainės operatoriui greitai ir lengvai trūksta vietos diske.

Tinkamai įdiegus, bus sukurta numatytoji svetainė po / home / katalogu arba kataloge / var / www / su atskirais konfigūracijos failais kiekvienoje svetainėje / etc / apache2 / sites-available / ir / etc / apache2 / sites-enabled / directories. Numatytasis konfigūracijos failas yra 000-default.conf, kurį daugiausia reikėtų palikti ramybėje. Priežastis yra sukurti visiems pritaikytą svetainę, kuri tvarkytų visas IP pagrįstas užklausas ir domenų užklausas, kurių nėra serveryje. 000-default.conf failą galima nukopijuoti, kad būtų sukurta nauja svetainė. Paprastai failo pavadinimo formatas yra example.com.conf ir sukurtas svetainėse, kuriose galima naudotis.

Kalbant apie žiniatinklio erdvę, tai turėtų atitikti konfigūracijos failą, pvz., /Home/example.com/ arba /var/www/example.com. Man nepatinka katalogą / var / www / naudoti atskiroms svetainėms. Dažnai iškyla leidimų konfliktai. Įrašykite / var / www / html numatytajai svetainei, jei tai turite. Kitu atveju, jei esate susipažinę su leidimų nustatymu, siūlau naudoti katalogą / home / home, kuriame nebus leidimų konfliktų.

Žinoma, jums reikės sudo a2ensite example.com.conf tinkamai įgalinti svetainę ir iš naujo paleisti „Apache“ sudo service apache2 restart.

Taigi, kas yra blogai naudojant / var / www /? „Apache“ veikia su tam tikrais leidimais, kurie turėtų egzistuoti visame medyje. Pavyzdžiui, jei mes stebime, ką daro „cPanel“, jūsų pirmoji svetainė sukuriama aplanke / var / www / public_html /, kas savaime nėra blogai. Tačiau kita svetainė yra sukurta aplanke / var / www / public_html / example /, todėl ji yra prieinama kaip pirmosios svetainės, sukurtos kaip www.firstsite.com/example/, katalogas. Blogai. Labai blogai. Be to, visos svetainės valdomos po vienu vartotoju, numatytuoju „Apache“ vartotoju, kuris gali būti įvairių vardų, įskaitant šakninį. Nėra įprasta, kad naudojama šaknis. Tai tikrai turėtų būti neprivilegijuotas vartotojas.

Kai segmentuojate svetaines į visiškai atskirus katalogus, esančius kitame nei / var / www / kataloge, kiekviena svetainė gali būti paleista skirtingais vartotojais, įtrauktais į „Apache“ naudojamą grupę. Tai yra smėlio dėžė, kaip minėta komentaruose. Jei paliksite tik numatytąją svetainę, galėsite toliau siųsti blogas užklausas, įskaitant tyčines atakas.

Pavyzdžiui, konfigūracijos, aš turiu keletą šiame atsakyme. „Virtualhost“ konfigūracija: maršruto parinkimas ir pakaitos naudojimas Tai nėra prieštaringai vertinami dalykai ir turėtų veikti gerai, darant prielaidą, kad kažko nepadarėte.

  • Ačiū. Šiuo metu esu įdiegęs „Debian“ serveryje, kuris nėra viešai prieinamas, bet gali jį pakeisti „Ubuntu“. Tai daugiausia skirta keliems „Wordpress“ diegimams ir TVS.

dirbo už jus: Charles Robertson | Norite su mumis susisiekti?