GNU/Linux >> Tutoriels Linux >  >> Linux

Principes de base des Vhosts et des blocs de serveur

Cet article vous présente les bases du vhost et du bloc de serveur.

Vérifier l'état du serveur Web

Les serveurs Web les plus courants qui s'exécutent sous Linux® sont Apache® (httpd ou apache2 ) et NGINX®. Plesk® est une plate-forme graphique pour la gestion de sites Web. Si Plesk est installé, utilisez cet article comme guide pour comprendre les vhosts.

Par défaut, les serveurs Web autorisent le trafic HTTP via le port 80 et le trafic HTTPS (sécurisé) via le port 443 .

Pour trouver le serveur Web qui s'exécute sur les ports 80 et 443 , saisissez la commande suivante :

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

Pour vérifier l'état d'un serveur Web, exécutez l'une des commandes indiquées dans le tableau suivant :

Type de serveur Web Commande
httpd service httpd status
ou
systemctl status httpd
apache2 service apache2 status
ou
systemctl status apache2
nginx service nginx status
ou
systemctl status nginx
Plesk service psa status
ou
systemctl status psa

Dans Plesk, pour vérifier l'état et identifier le serveur Web utilisé, saisissez la commande suivante :

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

Vérifier la configuration des vhosts

Un serveur Web (ou un pool de serveurs Web) peut héberger plusieurs sites Web en utilisant des hôtes virtuels (vhosts). Les Vhosts permettent à plusieurs sites Web de partager des ressources à partir d'un serveur physique.

Les Vhosts peuvent être basés sur l'IP ou sur le nom. Les vhosts basés sur IP attribuent une adresse IP différente à un site Web et basé sur le nom Les vhosts attribuent plusieurs noms d'hôte à une seule adresse IP. Les Vhosts gardent une trace des sites Web dans un serveur Web, en spécifiant la configuration de chaque site Web.

Pour vérifier la configuration des vhosts dans Apache, saisissez l'une des commandes suivantes :

# httpd -S

ou

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

Pour lire le contenu d'un fichier de configuration vhost, saisissez la commande suivante :

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

Les entrées du fichier de configuration vhosts incluent :

  •  :80 ou  : 443 :Ces entrées précisent si le site Web utilise HTTP (80 ) ou HTTPS (443 ).
  • DocumentRoot :Le chemin du répertoire des fichiers du site Web.
  • Nom du serveur  :Le nom de domaine du site Web.
  • Alias ​​du serveur  :Tout autre nom de domaine de site Web que vous souhaitez rediriger vers le ServerName domaine. Vous utilisez généralement des domaines du type www.domain , mais vous pouvez également utiliser d'autres domaines ou sous-domaines.
  • Journal des erreurs  :Le chemin d'accès au répertoire et le nom des journaux d'erreurs.
  • Port 443 :La configuration SSL. Commentez cette section si le site Web ne dispose pas d'un certificat SSL valide.
  • Fichiers SSL  :Les trois chemins de fichiers SSL nécessaires pour un serveur HTTPS sécurisé.

L'exemple suivant montre un fichier de configuration 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>

Pour copier le fichier de configuration d'un vhost existant pour en créer un nouveau, saisissez la commande suivante :

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

Modifiez le nouveau fichier de configuration vhost si nécessaire. Par exemple, vous devrez peut-être commenter les paramètres qui rendent le port 443 actif.

Pour trouver l'emplacement de DocumentRoot dans un fichier de configuration vhost, saisissez la commande suivante :

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

DocumentRoot /var/www/vhosts/example.com

Créer un nouveau vhost

Utilisez les instructions suivantes pour créer un nouveau vhost :

  1. Si possible, copiez un vhost existant pour conserver des paramètres cohérents. Utilisez un éditeur de texte ou un outil comme vim , nano , sed, or awk`.

  2. Créer un nouveau DocumentRoot annuaire. Le système crée automatiquement les journaux personnalisés et d'erreurs. Exécutez la commande suivante :

    # mkdir -p /docroot
    
  3. Vérifiez que le serveur Web n'envoie aucune erreur :

    # httpd -t
    
  4. Effectuez un redémarrage en douceur sur le serveur Web pour intégrer les modifications avec un minimum de perturbations dans votre environnement en direct :

    # service httpd graceful
    
  5. Vérifiez à nouveau le serveur Web :

    # httpd -t; service httpd status
    

Vérifier et dépanner les modifications apportées à la configuration du vhost

Pour vérifier les erreurs dans Apache, utilisez l'une des commandes suivantes :

# httpd -t

ou

# 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

Pour vérifier les erreurs dans NGINX, utilisez la commande suivante :

# 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

Remarque  :La clause Impossible de déterminer de manière fiable est commun, et cela ne signifie pas une erreur. Vous pouvez généralement l'ignorer.

L'exemple suivant montre un exemple d'erreur :

# 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

Corrigez cette erreur en créant un DocumentRoot :

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

Autre exemple d'erreur :

# 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

Le mot oups est dans le fichier vhost et Apache ne sait pas comment l'interpréter. Vous pouvez utiliser vim , nano , ou un autre éditeur de texte pour corriger l'erreur.

Redémarrer un serveur Web

Le serveur Web reconnaît les modifications apportées à la configuration des vhosts après un redémarrage. Les threads en cours peuvent se terminer avant le redémarrage avec le graceful option.

Pour effectuer un redémarrage en douceur sur Apache, saisissez l'une des commandes suivantes :

# service httpd graceful

ou

# service apache2 graceful

Voici les meilleures pratiques pour éviter les interruptions de service après la modification de la configuration des vhosts :

  • Sauvegarder le serveur Web.
  • Effectuez les modifications.
  • Effectuez un redémarrage progressif.
  • Assurez-vous que le serveur Web fonctionne sans erreur.

Il est important d'éviter autant que possible les temps d'arrêt dans un environnement en direct, ce qui signifie qu'après le redémarrage du serveur Web, vous devez effectuer les vérifications le plus rapidement possible. Pour cela, regroupez toutes les commandes sur une seule ligne.

Pour effectuer un redémarrage progressif sur Apache et vérifier les erreurs, saisissez l'une des commandes suivantes :

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

ou

# 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

Pour redémarrer NGINX et vérifier qu'il est en cours d'exécution, saisissez les commandes suivantes :

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

Utilisez l'onglet Commentaires pour faire des commentaires ou poser des questions. Vous pouvez également démarrer une conversation avec nous.


Linux
  1. Qu'est-ce qu'un serveur Web et comment fonctionne un serveur Web ?

  2. État du système et du serveur

  3. État du service Solaris et dépendances ?

  4. Serveur Ubuntu 14 et Xrdp ?

  5. Apache2 et lier ?

Installation de Nginx sur Ubuntu 14.04 et 16.04

Tunnellisation et proxy SSH

Client et serveur NIS

Fondamentaux de la virtualisation VMware – VMware Server et VMware ESXi

Problèmes de serveur courants et solutions

Bases de l'hébergement Web et choix d'un fournisseur