Tento článek vás seznámí se základy vhost a webového serveru. Webový server spouští software pro zpracování webových stránek. Poté, co webový provoz dosáhl serveru, následuje kroky k dosažení správného webu. Pokud server poskytuje webový obsah, musíte nainstalovat webový server.
Zkontrolujte stav webového serveru
Nejběžnějšími webovými servery, které běží na Linuxu®, jsou Apache® (httpd nebo apache2 ) a NGINX®. Můžete mít také Plesk®. Plesk můžete použít ke správě svých webových stránek ve stylu Windows®, který je více ukazovát a kliknout. Pokud si nainstalujete Plesk, použijte zbytek tohoto článku s přehledem vhostů, protože k provádění zde popsaných úloh potřebujete místo řádku Linuxcommand použít Plesk.
Ve výchozím nastavení povolují webové servery provoz HTTP přes port 80
a HTTPS (zabezpečený) provoz přes port 443
.
Chcete-li najít webový server, který běží na portech 80
a 443
, zadejte následující příkaz:
# netstat -plnt | awk '$4 ~ /:(80|443)$/'
tcp6 0 0 :::80 :::* LISTEN 2549/httpd
tcp6 0 0 :::443 :::* LISTEN 2549/httpd
Chcete-li zkontrolovat stav webového serveru, spusťte jeden z příkazů uvedených v následující tabulce:
Typ webového serveru | Příkaz |
---|---|
httpd | service httpd status |
nebo | |
systemctl status httpd | |
apache2 | service apache2 status |
nebo | |
systemctl status apache2 | |
nginx | service nginx status |
nebo | |
systemctl status nginx | |
Plesk | service psa status |
nebo | |
systemctl status psa |
Chcete-li zkontrolovat Plesk a zjistit, který webový server běží, zadejte následující příkaz:
# service psa status; netstat -plnt | awk '$4 ~ /:(80|443)$/'
Zkontrolujte konfiguraci vhosts
Webový server (nebo skupina webových serverů) může hostit několik webových stránek pomocí virtuálních hostitelů (vhosts). Vhosts umožňují několika webům sdílet zdroje z fyzického serveru.
Vhosts mohou být založeny na IP adrese nebo na názvu. Vhostitelé založené na IP adrese přidělují webové stránce jinou IP adresu a vhostitelé založené na jménu přidělují více názvů hostitelů jedné IP adrese. Vhosts sledují webové stránky na webovém serveru a určují konfiguraci každého webu.
Chcete-li zkontrolovat konfiguraci vhosts v Apache, zadejte jeden z následujících příkazů:
# httpd -S
nebo
# apache2ctl -S
*:80 example.com (/etc/httpd/vhost.d/example.com.conf:1)
Chcete-li přečíst obsah konfiguračního souboru vhost, zadejte následující příkaz:
# cat /etc/httpd/vhost.d/example.com.conf
Položky v konfiguračním souboru vhosts zahrnují:
- :80 nebo :443 :Tyto položky určují, zda web používá HTTP (
80
) nebo HTTPS (443
). - DocumentRoot :Cesta k adresáři souborů webových stránek. Toto je nejčastěji místo, kde vývojáři potřebují přístup k nahrávání souborů.
- Název serveru :Název domény webu.
- Alias serveru :Jakýkoli jiný název domény webových stránek, který chcete přesměrovat na Název serveru doména. Obvykle používáte domény typu www.domena , ale můžete použít i jiné domény nebo subdomény.
- ErrorLog :Cesta k adresáři a název protokolů chyb.
- Port 443 :Konfigurace SSL. Pokud web nemá platný certifikát SSL, okomentujte tuto sekci.
- Zabezpečený web HTTPS :Tři cesty k souboru SSL potřebné k úplnému šifrování, aby se z něj stal bezpečnější web HTTPS.
Následující příklad ukazuje konfigurační soubor vhosts:
<VirtualHost *:80>
DocumentRoot "/var/www/vhosts/example.com/httpdocs"
ServerName "example.com"
ServerAlias "www.example.com"
<Directory /var/www/vhosts/example.com/httpdocs>
AllowOverride All
Options +FollowSymlinks
</Directory>
DirectoryIndex index.html index.php index.htm
# Logging
CustomLog /var/log/httpd/example.com-access_log combined
ErrorLog /var/log/httpd/example.com-error_log
</VirtualHost>
#<VirtualHost *:443>
# DocumentRoot "/var/www/vhosts/example.com/httpdocs"
# ServerName "example.com"
# ServerAlias "www.example.com"
# <Directory /var/www/vhosts/example.com/httpdocs>
# AllowOverride All
# Options +FollowSymlinks
# </Directory>
# DirectoryIndex index.html index.php index.htm
# # SSL Configuration
# SSLEngine On
# SSLCertificateFile /etc/httpd/conf/ssl.crt/2021-example.com.crt
# SSLCACertificateFile /etc/httpd/conf/ssl.crt/2021-example.com.ca
# SSLCertificateKeyFile /etc/httpd/conf/ssl.key/2021-example.com.key
#
# # Logging
# CustomLog /var/log/httpd/example.com-ssl_access_log combined
# ErrorLog /var/log/httpd/example.com-ssl_error_log
#</VirtualHost>
Chcete-li zkopírovat konfigurační soubor existujícího vhost za účelem vytvoření nového, zadejte následující příkaz:
# cat /OLD_DOMAIN.conf | sed 's/OLD_DOMAIN/NEW_DOMAIN/ig' >> /NEW_DOMAIN.conf
Podle potřeby upravte nový konfigurační soubor vhost. Možná budete muset například okomentovat nastavení, která činí port 443
aktivní.
Chcete-li najít umístění DocumentRoot v konfiguračním souboru vhost zadejte následující příkaz:
# grep Doc /etc/httpd/vhost.d/example.com.conf
DocumentRoot /var/www/vhosts/example.com
Vytvořit nový vhost
K vytvoření nového vhost použijte následující pokyny:
-
Pokud je to možné, zkopírujte existující vhost, abyste zachovali konzistentní nastavení. Použijte textový editor, například
vim
,nano
,sed
neboawk
, pokud jej potřebujete upravit.# cat /OLD_DOMAIN.conf | sed 's/OLD_DOMAIN/NEW_DOMAIN/ig' >> /NEW_DOMAIN.conf
-
Vytvořte nový DocumentRoot adresář. Systém vytváří vlastní a chybové protokoly automaticky. Spusťte následující příkaz:
# mkdir -p /docroot
-
Zkontrolujte, zda webový server neodesílá žádné chyby:
# httpd -t
-
Proveďte elegantní restart na webovém serveru, abyste začlenili změny s minimálním narušením vašeho živého prostředí:
# service httpd graceful
-
Sebemenší změna ve vhost může přerušit celý váš webový server a zastavit jeho obsluhu všech vašich webů. Z tohoto důvodu použijte k opětovné kontrole webového serveru jeden z následujících příkazů:
Typ webového serveru Příkaz httpd # httpd -t; service httpd status
apache2 # apache2ctl -t; service apache2 status
nginx # nginx -t; service nginx status
Kontrola a odstraňování problémů se změnami konfigurace vhost
Chcete-li zkontrolovat chyby v Apache, použijte jeden z následujících příkazů:
# httpd -t
nebo
# apache2ctl -t
AH00558: httpd: Could not reliably determine the server's fully qualified
domain name, using 127.0.0.1. Set the 'ServerName' directive globally to
suppress this message
Syntax OK
Chcete-li zkontrolovat chyby v NGINX, použijte následující příkaz:
# nginx -t
AH00558: httpd: Could not reliably determine the server's fully qualified
domain name, using 127.0.0.1. Set the 'ServerName' directive globally to
suppress this message
Syntax OK
Poznámka :Klauzule Nelze spolehlivě určit je běžné a neznamená to chybu. Obvykle to můžete ignorovat.
Následující příklad ukazuje ukázkovou chybu:
# httpd -t
AH00112: Warning: DocumentRoot [/var/www/vhosts/example.com] does not exist
AH00558: httpd: Could not reliably determine the server's fully qualified
domain name, using 127.0.0.1. Set the 'ServerName' directive globally to
suppress this message
Syntax OK
Opravte tuto chybu vytvořením DocumentRoot adresář:
# mkdir -p /var/www/vhosts/example.com
Další příklad chyby:
# httpd -t
AH00526: Syntax error on line 5 of /etc/httpd/vhost.d/example.com.conf:
Invalid command 'oops', perhaps misspelled or defined by a module not
included in the server configuration
Slovo jejda je v souboru vhost a Apache neví, jak jej interpretovat. Můžete použít vim , nano , nebo jiný textový editor pro opravu chyby.
Restartujte webový server
Webový server potvrdí změny provedené v konfiguraci vhosts po restartu. Aktuální vlákna mohou skončit dříve, než dojde k restartu s ladným možnost.
Chcete-li provést elegantní restart na Apache, zadejte jeden z následujících příkazů:
# service httpd graceful
nebo
# service apache2 graceful
Někdy může sebemenší změna ve vhost přerušit celý váš webový server a zastavit obsluhu všech vašich webových stránek. Zálohujte si tedy svou práci a po provedení ladného restartu za účelem rozpoznání změn se ujistěte, že váš webový server stále běží bez chyb.
Níže jsou uvedeny doporučené postupy, jak se vyhnout přerušením služby po změně konfigurace vhosts:
- Zálohujte webový server.
- Proveďte změny.
- Proveďte elegantní restart.
- Ujistěte se, že webový server běží bez chyb.
V živém prostředí je klíčové vyhnout se co největšímu prostoji, což znamená, že musíte provést elegantní restart na webovém serveru a spustit kontroly tak rychle, jak je to možné, abyste mohli v případě potřeby vrátit zpět své změny. Chcete-li to provést, můžete seskupit všechny příkazy na jeden řádek.
Chcete-li provést elegantní restart na Apache a zkontrolovat chyby, zadejte jeden z následujících příkazů:
# service httpd graceful; httpd -t; service httpd status | grep running
nebo
# service apache2 graceful; apache2ctl -t; service apache2 status | grep running
AH00558: httpd: Could not reliably determine the server's fully qualified domain
name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK
Redirecting to /bin/systemctl status httpd.service
Active: active (running) (Result: exit-code) since Mon 2021-01-18 12:53:06 GMT; 2 months 19 days ago
Chcete-li restartovat NGINX a zkontrolovat, zda běží, zadejte následující příkazy:
# nginx -s reload; nginx -t; service nginx status
Pomocí karty Zpětná vazba můžete přidat komentáře nebo položit otázky. Můžete s námi také zahájit konverzaci.