Si të strehoni uebfaqe të shumta me një server Apache


Pritëset virtuale të Apache janë një veçori që ju lejon të organizoni uebfaqe të shumta të pavarura nga një instalim Apache. Çdo sajt ka drejtorinë e vet të sistemit të skedarëve dhe emrin e domenit. Ju mund të shërbeni faqe të ndryshme për vizitorë të ndryshëm bazuar në domenin që ata përdorin.

Pritësit virtual krijohen duke përdorur direktivën në skedarët e konfigurimit të Apache. Ato zakonisht ruhen në drejtorinë sites-available brenda vendndodhjes së instalimit të Apache. Në sistemet Debian, kjo zakonisht është /etc/apache2; shpërndarjet e tjera mund të përdorin /etc/httpd.

Ne do të supozojmë se ju tashmë keni Apache në funksionim. Ne do të krijojmë dy hoste virtualë të veçantë, a.example.com dhe b.example.com. Nuk ka asnjë kufi për numrin e hosteve virtualë që mund të përdorni – nëse keni nevojë për një duzinë faqesh në një server, Apache do t'ju detyrojë.

Konfigurimi i faqeve

Çdo faqe ka nevojë për drejtorinë e vet të sistemit të skedarëve. Do të vendosni skedarët e faqes së internetit, të tilla si HTML, CSS dhe JavaScript, brenda kësaj drejtorie. Quhet DocumentRoot nga Apache, pasi është rrënja nga e cila shërbehen dokumentet.

Ju mund t'i gjeni faqet tuaja kudo në sistemin tuaj. Shpesh do të shihni hostet virtualë të ruajtur brenda /var/www, ku çdo sajt merr dosjen e vet:

sudo mkdir -p /var/www/a.example.com
sudo mkdir -p /var/www/b.example.com

/var/www zakonisht është në pronësi të root, kështu që ne po përdorim sudo për të krijuar nën-drejtoritë. Më pas, ndryshoni pronësinë e rrënjëve të dokumentit tek përdoruesi juaj dhe vendosni lejet e duhura. Kjo do të lejojë Apache-n të lexojë skedarë ndërkohë që ju jep akses për shkrim, në mënyrë që të mund të shtoni përmbajtjen tuaj.

sudo chown -R $USER:$USER /var/www/a.example.com
sudo chown -R $USER:$USER /var/www/b.example.com
sudo chmod -R 755 /var/www

Kopjoni skedarët e faqes suaj të internetit në drejtori. Ne do të përdorim dy skedarë të thjeshtë index.html:

a.example.com/index.html

<html>
    <body>
        <h1>a.example.com</h1>
    </body>
</html>

b.example.com/index.html

<html>
    <body>
        <h1>b.example.com</h1>
    </body>
</html>

Konfigurimi i Apache

Tani jeni gati të konfiguroni hostet tuaj virtualë. Krijoni një skedar të ri Virtual Host për secilën prej sajteve. Nuk ka rëndësi se si e emërtoni skedarin; sipas konventës, zakonisht përputhet me emrin e hostit të faqes suaj.

Së paku, çdo Host Virtual duhet të deklarojë dy veti:

  • Emri i serverit – Emri i hostit (domeni) nga i cili do të shërbehet faqja.
  • DocumentRoot – Vendndodhja e sistemit të skedarëve për të shërbyer për këtë host virtual.

Këtu është një shembull konfigurimi për dy faqet tona:

/etc/apache2/sites-available/a.example.com.conf

<VirtualHost *:80>
    ServerName a.example.com
    DocumentRoot /var/www/a.example.com
</VirtualHost>

/etc/apache2/sites-available/b.example.com.conf

<VirtualHost *:80>
    ServerName b.example.com
    DocumentRoot /var/www/b.example.com
</VirtualHost>

Ky konfigurim bazë është i mjaftueshëm për të marrë të dy faqet drejtpërdrejt! *:80 do të thotë se Apache do të marrë në konsideratë përdorimin e këtij Host Virtual për çdo kërkesë që arrin në portin 80. Ato do të zbehen më vonë nga deklaratat ServerName.

Aktivizimi i hosteve virtualë

Shtimi i një hosti virtual në sites-available e bën atë të disponueshëm por jo aktiv. Duhet të aktivizoni manualisht çdo sajt që dëshironi të përdorni. Konfigurimet Virtual Host për të aktivizuar duhet të jenë të lidhura në /etc/apache2/sites-enabled (ose /etc/httpd/sites-enabled).

Në sistemet Debian, mund të përdorni komandën a2ensite për të thjeshtuar këtë hap:

a2ensite a.example.com
a2ensite b.example.com

Në shpërndarjet e tjera, përdorni komandën ln për të krijuar manualisht një lidhje simbolike.

sudo ln -s /etc/httpd/sites-available/a.example.com.conf /etc/httpd/sites-enabled/a.example.com.conf
sudo ln -s /etc/httpd/sites-available/a.example.com.conf /etc/httpd/sites-enabled/b.example.com.conf

Më në fund, rinisni Apache për të aplikuar konfigurimin tuaj të ri. Ndryshimet Virtual Host kërkojnë një rinisje të serverit pasi t'i keni shtuar në sajtet e aktivizuara.

sudo apache2ctl restart

Tani duhet të jeni në gjendje të shihni Apache që shërben dy faqet tuaja të ndryshme. Nëse nuk keni zgjidhjen e DNS në serverin tuaj, mund të modifikoni skedarin /etc/hosts të sistemit tuaj për të testuar konfigurimin tuaj.

Shtoni rreshtat e mëposhtëm te /etc/hosts:

127.0.0.1 a.example.com
127.0.0.1 b.example.com

Kjo do t'i detyrojë të dy domenet të zgjidhen përsëri në sistemin tuaj. Tani do të keni mundësi t'i vizitoni ato në shfletuesin tuaj për të parë dy faqet e ndryshme Virtual Host.

Pseudonimet e faqeve

Nëse dëshironi të shërbeni i njëjti sit në domene të shumta, përdorni direktivën ServerAlias në hostin tuaj virtual. Çdo pseudonim do të merret parasysh kur Apache përputhet me hostin tuaj virtual me kërkesat hyrëse. Pritësi virtual do të përdoret nëse titulli Host i kërkesës përputhet me një Alias të Serverit ose me Emri i Serverit.

<VirtualHost *:80>
    ServerName a.example.com
    ServerAlias example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/a.example.com
</VirtualHost>

Ky shembull do të shërbente sitin a në tre domene, pa pasur nevojë të përsërisni ndonjë detaj konfigurimi. Ju duhet të përdorni ServerAlias për të përcaktuar domene të shumta – përsëritja e Emri i serverit është e mundur, por do të anashkalojë përdorimet e mëparshme.

Opsione të tjera të konfigurimit

Shumë nga opsionet e konfigurimit të serverit të Apache mund të përdoren me Virtual Hosts. Ata do të anashkalojnë cilësimet globale të serverit kur Apache trajton një kërkesë duke përdorur Virtual Host.

<VirtualHost *:80>
    ServerName a.example.com
    DocumentRoot /var/www/a.example.com
    DirectoryIndex my-index.html

    <Directory /var/www/a.example.com>
        AllowOverride All
        Options -Indexes
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Ky host virtual aplikon shumë cilësime të tjera. my-index.html shërbehet si parazgjedhje, në vend të index.html dhe përdoren vendndodhjet e personalizuara të regjistrimit. Përveç kësaj, cilësimet shtesë aplikohen në vetë rrënjën e dokumentit, duke përdorur bllokun Directory. Lejohen anulimet e .htaccess (AllowOverride All) dhe faqet e listimit të dosjeve të paracaktuara të Apache janë të çaktivizuara (Opsionet -Indekset).

Pritësit e adresave IP

Apache gjithashtu mbështet hostet me bazë IP përveç hosteve të bazuara në emra që kemi parë deri më tani. Pritëset e bazuara në IP janë ideale kur serveri juaj ka ndërfaqe të shumta rrjeti, të tilla si një rrjet i brendshëm i kompanisë dhe interneti publik. Ju mund të shërbeni një sajt të ndryshëm në varësi të ndërfaqes së rrjetit të përdorur.

<VirtualHost 172.17.0.1>
    ServerName a.example.com
    DocumentRoot /var/www/a
</VirtualHost>

<VirtualHost 172.17.0.1>
    ServerName b.example.com
    DocumentRoot /var/www/b
</VirtualHost>

<VirtualHost 192.168.0.1>
    ServerName a.example.com
    DocumentRoot /var/www/a2
</VirtualHost

Në këtë shembull, kërkesat e bëra në a.example.com nëpërmjet ndërfaqes me IP 192.168.0.1 do të merrnin përmbajtje të ndryshme nga ato të dërguara nëpërmjet 172.17.0.1. Përveç kësaj, përdoruesit e IP-së së fundit do të mund të hynin në b.example.com. Ky sajt nuk është i ekspozuar ndaj përdoruesve që lidhen nëpërmjet 192.168.0.1.

Kjo qasje ju lejon të përdorni një server për intranetin tuaj të korporatës dhe faqen publike të internetit. Lidhni faqet e brendshme me IP-në LAN të serverit tuaj; drejtoni hostet publike kundrejt adresës së tij WAN.

Përputhja e hostit virtual

Rutina e zgjidhjes së Pritësit Virtual të Apache është e mirë-dokumentuar dhe mjaft e drejtpërdrejtë.

Në përgjithësi, Apache përpiqet të përputhet me kokën e kërkesës Host me një fushë ServerName ose ServerAlias në një konfigurim Virtual Host. Nëse ka shumë përputhje, Apache do të përdorë Pritësin Virtual që përputhet i parë që gjeti.

Pritësit virtualë janë renditur sipas emrit të skedarit. Nëse ju duhet një sajt që të përputhet me një tjetër, riemërtoni skedarin e tij të konfigurimit në mënyrë që të renditet përpara sajtit të synuar. Mund të shtoni një parashtesë numerike si 000-a.example.com.conf. Shumicën e kohës kjo do të jetë e panevojshme – nëse të gjitha faqet tuaja kanë domene unike, nuk duhet të hasni kurrë një konflikt.

konkluzioni

Apache Virtual Hosts ju lejojnë të zbërtheni konfigurimin e shumë faqeve në skedarë me definicion të pavarur. Ju mund të aktivizoni dhe çaktivizoni në mënyrë të pavarur çdo sajt duke e lidhur atë në sites-enabled.

Shumë opsione konfigurimi janë të disponueshme për Virtual Hosts. Ju mund të anashkaloni disa cilësime të serverit Apache në bazë të hostit, në mënyrë që të keni kontroll të plotë mbi çdo konfigurim të sajtit të virtualizuar.


Të gjitha të drejtat e rezervuara. © Linux-Console.net • 2019-2024