GNU/Linux >> Znalost Linux >  >> Linux

Základy Vhosts

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:

  1. Pokud je to možné, zkopírujte existující vhost, abyste zachovali konzistentní nastavení. Použijte textový editor, například vim , nano , sed nebo awk , pokud jej potřebujete upravit.

       # cat /OLD_DOMAIN.conf | sed 's/OLD_DOMAIN/NEW_DOMAIN/ig' >> /NEW_DOMAIN.conf
    
  2. Vytvořte nový DocumentRoot adresář. Systém vytváří vlastní a chybové protokoly automaticky. Spusťte následující příkaz:

    # mkdir -p /docroot
    
  3. Zkontrolujte, zda webový server neodesílá žádné chyby:

    # httpd -t
    
  4. 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
    
  5. 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.


Linux
  1. Jak nakonfigurovat webový server Apache

  2. Ladění webového serveru Apache Keepalive

  3. Je bezpečné zakázat IPv6 na mém serveru Debian?

  1. Co je webový server a jak webový server funguje?

  2. Jak nainstalovat webový server Nginx na Linux

  3. Nainstalujte WordPress na webový server LiteSpeed

  1. Co je Apache? Podrobný přehled webového serveru Apache

  2. Nastavení webového serveru Ubuntu?

  3. Základy Vhosts a serverových bloků