SESS - 55. sērija: Pirmais Lunas biotops

Lai gan OSX esmu izmantojis MAMP un AMPPS jau iepriekš, vienkārši testēšanas nolūkos šis jautājums ir par faktisko ražošana vietnes Apache serveros.

Ja man būtu domēna vārds www.example.com - ja tas būtu Apache, kas instalēts kā sudo apt-get Linux (varbūt Debian vai Ubuntu), nevis caur GUI, piemēram, MAMP vai AMPP, vai tas nebūtu /var/www/public_html/www.example.com vai būtu /var/www/public_html/example

Ir /var/www/public_html/yoururlhere visizplatītākais iestatīšanas veids Linux serveros?

Tomēr vai tā varētu būt arī /var/www/www.example.com vai /var/www/example ?

Ja man būtu, piemēram, apakšdomēns, http://canada.example.com, vai tas būtu:

/var/www/public_html/example/canada

vai

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

Par tādu URL kā http://www.example.com/~site1 vai tā būtu /var/www/public_html/example/site1 vai tas prasītu kaut kādu mod_rewrite?

Kāds ir visparastākais veids, kā rīkoties šādi, piemēram, vietrāžiem URL, kas Linux resursdatoros izmanto Apache, it īpaši lielākajiem tīmekļa mitināšanas uzņēmumiem?

  • Es iesaku jums izpētīt katra domēna ieslodzīšanu un to palaišanu kā katras vietnes lietotāju. piem /home/site1/public_html.

vai tas nebūtu sadaļā /var/www/public_html/www.example.com vai būtu / var / www / public_html / example

Šis ir pilnīgi personisks zvans, jo tam (visos vispārīgos gadījumos) nav nekādu tehnisku seku gan attiecībā uz izvēlēto enkura ceļu, gan to, kā jūs tajā konfigurējat lietas.

Tātad administratoram ir jāizlemj, ko darīt. Daži apsvērumi, kas būs jāņem vērā, izvēloties optimālu shēmu:

  • kā tiek apstrādātas atļaujas? vienam lietotājam ir piekļuve visām vietnēm vai vienam katrai vietnei? Kā viņiem piekļūt: ssh, sftp, ftputt.
  • kā darbojas vietnes? visi zem tā paša httpd vai apache lietotāja kontu, vai arī jums ir atsevišķs sistēmas konts katrai vietnei?
  • kā tiek apstrādāti dublējumi? Vai ir nepieciešams darīt dažas smalkgraudainas (tikai vienu vietni), nevis visu kopā
  • datu apjomi un kvotas: kādā brīdī visas vietnes tajā pašā resursdatorā sacentīsies par I / O piekļuvi un CPU, tāpēc kādā brīdī jums būs jādara, ja vēlaties vienu pārvietot uz citu resursdatoru.

Un tikai tas, kas dabiskāk "lasa", un iespēja, piemēram, vietnes nosaukumā izmantot automātisko pabeigšanu, ja tā pastāv kā direktorija failu sistēmā.

"Masveida" virtuālajā mitināšanā jūs pat varat atrast citas shēmas:

  • etiķešu maiņa domēnā (jo domēna vārdi galvenokārt tiek lasīti no labās uz kreiso pusi): /var/www/public_html/com/example/canada, /var/www/public_html/com/example/www utt.

  • lai norādītajā direktorijā izvairītos no pārāk daudz failu / direktoriju (jo failu sistēmas šajā lietā netiek galā labi), veiciet sava veida jaukšanu, bieži balstoties uz iepriekšējo punktu, jo citādi jūs bieži sākat ar www lai tas nebūtu pietiekami diskriminējošs: /srv/web/example/f/i/www.first.example, /srv/web/example/s/e/www.second.example, /srv/web/example/t/h/www.third.exampleutt. (vietnēm www.first.example, www.second.example, www.third.exampleutt.)

Esmu pārliecināts, ka varat iedomāties citas shēmas. Ja vietnes pārvalda kāda veida panelis, pats panelis var nākt klajā ar savu veidu, kā sakārtot lietas failu sistēmā.

URL, piemēram, http://www.example.com/~site1

Parasti Unix izmanto standarta Apache ~ kā ļoti specifisks ceļa elements, un ar to rīkojas mod_userdir lai parasti kartētu iepriekšējo URL /home/site1/public_html ja site1 ir Unix lietotājs. Bet tas viss ir atkarīgs no Apache konfigurācijas ...

Skatiet vietni https://httpd.apache.org/docs/2.4/mod/mod_userdir.html

Vietnes var apkalpot gandrīz jebkurā direktorijā. Esmu redzējis /var/www, /srv/www, un /home/username starp citiem. Saskaņā ar šo pavedienu srv direktorijs ir paredzēts “datiem, kas tiek piegādāti no šīs sistēmas”, tāpēc tas šķiet loģiski. Tas ir tas, ko es parasti lietoju šajās dienās, bet es domāju /var/www joprojām ir visizplatītākā.

Runājot par vairāku vietņu mitināšanu, standarta procedūra ir katrai vietnei izmantot atsevišķu direktoriju, kurā katrā bieži ir “publisks” apakšdirektorijs. Tos var nosaukt par domēnu vai kā citu, kas palīdz tos atšķirt. Tā, piemēram /var/www/example.com/public un /var/www/sub.example.com/public

Atkarībā no tā, kuras vietnes mitināt, žurnāliem varat izmantot atsevišķus direktorijus. Varat izmantot vairākus direktorijus, piemēram, /var/log/apache2/example.com vai blakus savam publiskajam direktorijam ir žurnālu direktorijs, ti /var/www/example.com/logs

  • Man par to vajadzēja domāt, es esmu pieradis pie kopīgotajiem mitinātājiem, bet mēģinu iemācīties vadīt savu vietni tā, it kā es būtu tīmekļa mitinātājs, izmantojot Linux veco datoru kā serveri.

Tas var būt mazliet grūts jautājums, uz kuru jāatbild. Es priecājos jautājumā redzēt Ubuntu. Tomēr trūkst, vai tiks izmantots mitināšana vai pat vadības panelis. Šeit tas kļūst grūts. Ļauj man paskaidrot.

Pirms daudziem gadiem, kad tika izlaists Apache 2.0, tika veiktas strukturālas izmaiņas, kas ne vienmēr bija spēkā. Iepriekš visas vietnes konfigurācijas tika ievietotas httpd.conf, kas bija pašas Apache konfigurācija. Tas ne vienmēr bija slikti, tomēr pozitīvas izmaiņas tika veiktas konfigurācijā, kas paredzēta drošākai un vienkāršākai pārvaldīšanai. Ar šīm izmaiņām bija un joprojām ir divas problēmas. Pirmkārt, Apache neveidoja dažādu OS instalēšanas versiju veidošanu, un divi - ne visi vadības paneļi tajā laikā ievēroja paraugpraksi un nemainījās.

Piemēram, Ubuntu patiešām piedāvāja atjaunināt konfigurācijas shēmu, kamēr Redhat to nedarīja. Vadības paneļa pusē Webmin / Virtualmin atjaunināja konfigurācijas shēmu, kamēr cPanel neatjaunināja. Redzi, kurp dodos?

Hostēšanai cPanel tiek izmantots universāli. Tas ir nožēlojami, jo mēs šeit bieži sakopjam nekārtību. Lielākajai daļai vietņu mitinātāju atrod drošības un darbības problēmas, kurām nekad nevajadzētu pastāvēt.

Tā kā es izmantoju tikai Ubuntu, es varu jums pateikt, ka Apache instalēšana ir laba un tā paliks, ja izmantojat arī Webmin vai Virtualmin. Tomēr, ja izvēlēsities izmantot cPanel, Apache konfigurācija būs tik slikta, cik tā var būt. Ja izvēlaties neizmantot vadības paneli, jums vajadzētu būt labi.

Lūk, kas notiek.

Redhat instalēšana un cPanel instalēšana izveidos tīmekļa vietu mapēs / var / httpd / html vai / var / www / public_html. Dažreiz šis katalogs atradīsies nodalījumā, kas ir mazs, ievērojot vecās tradīcijas, kad vietnes bija mazas. Tas ne vienmēr notiek, tomēr esmu to redzējis pietiekami daudz reižu, kad vietnes operatoram ātri un viegli pietrūkst vietas diskā.

Pareizi instalējot, noklusējuma vietne tiks izveidota zem / home / direktorija vai direktorijā / var / www / ar atsevišķiem konfigurācijas failiem katrā vietnē zem / etc / apache2 / sites-available / un / etc / apache2 / sites-enabled / directories. Noklusējuma konfigurācijas fails ir 000-default.conf, kas lielākoties jāatstāj mierā. Iemesls tam ir izveidot visaptverošu vietni, kas apstrādā visus IP balstītos pieprasījumus un domēnu pieprasījumus, kuru serverī nav. Lai izveidotu jaunu vietni, var nokopēt failu 000-default.conf. Parasti faila nosaukuma formāts būtu example.com.conf un izveidots vietnēs pieejamajā direktorijā.

Attiecībā uz tīmekļa vietu tam jāatbilst konfigurācijas failam, piemēram, /home/example.com/ vai /var/www/example.com. Man nepatīk atsevišķām vietnēm izmantot direktoriju / var / www /. Bieži vien jūs nonākat atļauju konfliktos. Saglabājiet / var / www / html noklusējuma vietnei, ja jums tas ir. Pretējā gadījumā, ja esat pazīstams ar atļauju iestatīšanu, es iesaku izmantot / home / direktoriju, kurā nebūs atļauju konfliktu.

Protams, jums tas būs nepieciešams sudo a2ensite example.com.conf lai pareizi iespējotu vietni un pēc tam restartētu Apache ar sudo service apache2 restart.

Tātad, kas ir nepareizi, izmantojot / var / www /? Apache darbojas ar īpašām atļaujām, kurām būtu jāpastāv visā kokā. Piemēram, ja mēs sekojam tam, ko dara cPanel, jūsu pirmā vietne tiek izveidota zem / var / www / public_html /, kas pats par sevi nav slikti. Tomēr nākamā vietne tiek izveidota zem / var / www / public_html / example /, kas padara to pieejamu kā pirmās vietnes direktoriju, kas izveidota kā www.firstsite.com/example/. Slikti. Ļoti slikti. Turklāt visas vietnes darbojas ar vienu lietotāju, Apache noklusējuma lietotāju, kas var būt dažādi nosaukumi, ieskaitot root. Nav ierasts, ka tiek izmantota sakne. Tam tiešām vajadzētu būt privileģētam lietotājam.

Segmentējot vietnes pilnīgi atsevišķos direktorijos direktorijā, kas nav / var / www /, katru vietni var palaist ar dažādiem lietotājiem, kas pievienoti Apache izmantotajai grupai. Tā ir smilškaste, kā minēts komentāros. Atstājot noklusējuma vietni vien, jūs varat turpināt smilškastes sliktos pieprasījumus, tostarp tīšus uzbrukumus.

Piemēram, konfigurācijas, man šajā atbildē ir daži. Virtualhost config: maršrutēšana un aizstājējzīmju izmantošana. Šīs nav strīdīgas lietas, un tām vajadzētu darboties labi, pieņemot, ka jūs kaut ko neizdomājāt.

  • Paldies. Pašlaik manā serverī ir instalēta Debian, kas nav publiski pieejama, taču, iespējams, to aizstās ar Ubuntu. Tas galvenokārt paredzēts dažām WordPress instalācijām un CMS.

strādāja par jums: Charles Robertson | Vēlies ar mums sazināties?