GNU/Linux >> Linux Esercitazione >  >> Linux

Nozioni di base su Vhost e blocchi server

Questo articolo presenta le nozioni di base su vhost e server block.

Controlla lo stato del server web

I server Web più comuni eseguiti su Linux® sono Apache®(httpd o apache2 ) e NGINX®. Plesk® è una piattaforma GUI per la gestione di siti Web. Se hai installato Plesk, usa questo articolo come guida per comprendere i vhost.

Per impostazione predefinita, i server Web consentono il traffico HTTP attraverso la porta 80 e il traffico HTTPS(sicuro) attraverso la porta 443 .

Per trovare il server web che gira sulle porte 80 e 443 , inserisci il seguente comando:

# netstat -plnt | awk '$4 ~ /:(80|443)$/'
tcp6       0      0 :::80                   :::*                    LISTEN      2549/httpd
tcp6       0      0 :::443                  :::*                    LISTEN      2549/httpd

Per verificare lo stato di un server web, eseguire uno dei comandi mostrati nella tabella seguente:

Tipo di server web Comando
httpd service httpd status
o
systemctl status httpd
apache2 service apache2 status
o
systemctl status apache2
nginx service nginx status
o
systemctl status nginx
Plesk service psa status
o
systemctl status psa

In Plesk, per controllare lo stato e identificare quale server web è in uso, immetti il ​​seguente comando:

# service psa status; netstat -plnt | awk '$4 ~ /:(80|443)$/'

Controlla la configurazione dei vhost

Un server Web (o un pool di server Web) può ospitare diversi siti Web utilizzando host virtuali (vhost). I Vhost consentono a diversi siti Web di condividere risorse da un server fisico.

I Vhost possono essere basati su IP o basati su nomi. I vhost basati su IP assegnano un indirizzo IP diverso a un sito Web e basato sul nome vhosts assegna più nomi host a un singolo indirizzo IP. I Vhost tengono traccia dei siti Web in un server Web, specificando la configurazione di ciascun sito Web.

Per verificare la configurazione di vhosts in Apache, inserisci uno dei seguenti comandi:

# httpd -S

o

# apache2ctl -S
*:80                   example.com (/etc/httpd/vhost.d/example.com.conf:1)

Per leggere il contenuto di un file di configurazione vhost, immettere il seguente comando:

# cat /etc/httpd/vhost.d/example.com.conf 

Le voci nel file di configurazione di vhosts includono:

  • :80 o :443 :Queste voci specificano se il sito Web utilizza HTTP (80 ) o HTTPS (443 ).
  • DocumentRoot :il percorso della directory dei file del sito Web.
  • Nomeserver :il nome di dominio del sito web.
  • ServerAlias :Qualsiasi altro nome di dominio del sito Web che desideri reindirizzare al Nomeserver dominio. Di solito utilizzi domini del tipo www.domain , ma puoi anche utilizzare altri domini o sottodomini.
  • Registro errori :il percorso della directory e il nome dei log degli errori.
  • Porta 443 :La configurazione SSL. Commenta questa sezione se il sito Web non dispone di un certificato SSL valido.
  • File SSL :i tre percorsi file SSL necessari per un server HTTPS sicuro.

L'esempio seguente mostra un file di configurazione di 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>

Per copiare il file di configurazione di un vhost esistente per crearne uno nuovo, immetti il ​​seguente comando:

# cat /OLD_DOMAIN.conf | sed 's/OLD_DOMAIN/NEW_DOMAIN/ig' >> /NEW_DOMAIN.conf

Modifica il nuovo file di configurazione di vhost come richiesto. Ad esempio, potresti dover commentare le impostazioni che rendono la porta 443 attivo.

Per trovare la posizione di DocumentRoot in un file di configurazione vhost, inserisci il seguente comando:

# grep Doc /etc/httpd/vhost.d/example.com.conf

DocumentRoot /var/www/vhosts/example.com

Crea un nuovo vhost

Utilizzare le seguenti istruzioni per creare un nuovo host virtuale:

  1. Se possibile, copia un host virtuale esistente per mantenere le impostazioni coerenti. Usa un editor di testo o uno strumento come vim , nano , sed, or awk`.

  2. Crea una nuova DocumentRoot directory. Il sistema crea automaticamente i registri personalizzati ed errori. Esegui il seguente comando:

    # mkdir -p /docroot
    
  3. Verifica che il server web non invii errori:

    # httpd -t
    
  4. Esegui un riavvio regolare sul server Web per incorporare le modifiche con interruzioni minime nel tuo ambiente live:

    # service httpd graceful
    
  5. Controlla di nuovo il server web:

    # httpd -t; service httpd status
    

Controlla e risolvi le modifiche alla configurazione di vhost

Per controllare gli errori in Apache, usa uno dei seguenti comandi:

# httpd -t

o

# 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

Per controllare gli errori in NGINX, usa il seguente comando:

# 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

Nota :La clausola Impossibile determinare in modo affidabile è comune e non significa un errore. Di solito puoi ignorarlo.

L'esempio seguente mostra un errore di esempio:

# 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

Risolvi questo errore creando una DocumentRoot :

# mkdir -p /var/www/vhosts/example.com

Un altro errore di esempio:

# 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

La parola ops è nel file vhost e Apache non sa come interpretarlo. Puoi usare vim , nano o un altro editor di testo per correggere l'errore.

Riavvia un server web

Il server Web riconosce le modifiche apportate alla configurazione di vhosts dopo un riavvio. I thread correnti possono terminare prima che avvenga il riavvio con il aggraziato opzione.

Per eseguire un riavvio regolare su Apache, inserisci uno dei seguenti comandi:

# service httpd graceful

o

# service apache2 graceful

Di seguito sono riportate le best practice per evitare interruzioni del servizio dopo aver modificato la configurazione di vhosts:

  • Esegui il backup del server web.
  • Apporta le modifiche.
  • Fai un buon riavvio.
  • Assicurati che il server web funzioni senza errori.

È importante evitare il più possibile i tempi di inattività in un ambiente live, il che significa che dopo aver riavviato il server Web, è necessario eseguire i controlli il più rapidamente possibile. Per fare ciò, raggruppa tutti i comandi su una riga.

Per eseguire un riavvio regolare su Apache e verificare la presenza di errori, immettere uno dei seguenti comandi:

# service httpd graceful; httpd -t; service httpd status | grep running

o

# 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

Per riavviare NGINX e verificare che sia in esecuzione, inserisci i seguenti comandi:

# nginx -s reload; nginx -t; service nginx status

Utilizza la scheda Feedback per inserire commenti o porre domande. Puoi anche avviare una conversazione con noi.


Linux
  1. Stato e dipendenze del servizio Solaris?

  2. Server Ubuntu 14 e Xrdp?

  3. Apache2 e vincolare?

  4. Creazione e gestione delle istantanee

  5. Nozioni di base su Vhost

Installazione di Nginx su Ubuntu 14.04 e 16.04

Tunneling e proxy SSH

Client e server NIS

Fondamenti di virtualizzazione VMware – VMware Server e VMware ESXi

Problemi e soluzioni comuni del server

Nozioni di base sull'hosting Web e scelta di un provider