Vous êtes sur la page 1sur 7

20/03/2024 23:45 Apache : Les Virtual Hosts - Wiki - Wiki

Linuxtricks.fr Site mémo et blogue d'Adrien - Sans


Tablepubs ni traqueurs
des matières
Linuxtricks
Accueil Recherche... 
Blogue
Tout le blogue
Logiciels libres
Actus Linuxtricks
Le sac de chips
Wiki
Généralités Linux
Console
Services et Serveurs
Gentoo et Calculate Linux
Fedora, Red Hat et dérivées
Debian et dérivées
Scripts et Programmation
Virtualisation
Windows
Interface et session graphique
Logiciels graphiques
Autres distribs
Hors Linux
Archives
En rédaction
Archives COAGUL
Rechercher
A propos
Support et Contact
Communauté Linuxtricks
Linuxtricks Annonces (Canal Télégram)
Mon Github
Youtube
Twitch
Site adrienLT_DJ
RSS
Wiki
Blogue
Commentaires
Miroir Calculate Linux
Liens utiles
Le journal du hacker
kernel.org
CERT-FR
CNIL
Loi n° 78-17 du 6 janvier 1978
pkgs.org
Documentation Fedora
CalculateLinux
Overlays Gentoo
NetMarketShare
Distrowatch
Mirror Service
Sondages
Faire un don

https://www.linuxtricks.fr/wiki/apache-les-virtual-hosts 1/7
20/03/2024 23:45 Apache : Les Virtual Hosts - Wiki - Wiki

Menu d'actions du module Wiki Table des matières


Accueil
Explorateur
1. Accueil
2. Wiki
3. Services et serveurs
4. Apache : Les Virtual Hosts
 Services et serveurs

Apache : Les Virtual Hosts


Outils
 Historique
 Version imprimable

Introduction
Votre serveur ne dispose que d'une seule adresse IP, et de nombreux noms de domaines pointent vers cette
adresse dans le DNS?
Vous devez donc utiliser les VirtualHosts pour différencier quel site afficher en fonction de quel nom de
domaine.

La base de cet article est Gentoo, mais en adaptant les chemins, c'est applicable à n’importe quelle
distribution.

Configurer httpd.conf
D'abord, s'assurer que dans le fichier httpd.conf on ait une ligne de ce style :

Code BASH :  Copier vers le presse-papier

Include /etc/apache2/vhosts.d/*.conf

Grâce à cette ligne, on inclura tous les .conf de /etc/apache2/vhosts.d/

 Sur CentOS, on peut placer les vhosts dans le fichier conf/vhost.conf

https://www.linuxtricks.fr/wiki/apache-les-virtual-hosts 2/7
20/03/2024 23:45 Apache : Les Virtual Hosts - Wiki - Wiki

Table des matières

Vous l'aurez compris, tous mes "virtual hosts" vont être des fichiers du style xxx.conf dans
/etc/apache2/vhosts.d/

Création des Virtual Hosts

Explications sur la structure de base


Je reprends mon fichier précédent et vais expliquer les lignes du "Virtual Host" :

Code BASH :  Copier vers le presse-papier

<VirtualHost *:80> # Virtualhost écoutant sur le port 80


ServerName dev.linuxtricks.fr # Nom du serveur auquel le vhost doit répondre
ServerAlias dev.linuxtricks.fr # Eventuel alias supplémentaire
ServerAdmin webmaster@linuxtricks.fr # Mail du webmaster
ErrorLog /var/log/apache2/dev.linuxtricks.fr-error_log # Délocaliser pour ce vhost
les logs d'erreur
TransferLog /var/log/apache2/dev.linuxtricks.fr-access_log # Délocaliser pour ce
vhost les logs d'accès
DocumentRoot "/var/www/localhost/htdocs/dev/" # Racile des fichiers du site
<Directory "/var/www/localhost/htdocs/dev/"> #Définition des droits d'un répertoire
Options Indexes FollowSymLinks # Options choisies
AllowOverride All # Permet d'utiliser le htaccess dans un site
Require all granted # On autorise tout le monde
</Directory> # Fin de la définition des droits
</VirtualHost> # Fin de la définition du vhost

Pour les droits, on a :

Require all denied => Tout refuser


Require all granted => Tout accepter
Require host example.org => Accepter example.org
Require ip 1.2.3.4 => Accepter 1.2.3.4
Require not ip 1.2.3.4 => Refuser 1.2.3.4

Pour AllowOverride, on peut utiliser :


None : les fichiers .htaccess sont ignorés
All : tout type de redéfinition est autorisé dans le .htaccess
AuthConfig : autorise l’authentification d’utilisateurs
FileInfo : autorise les directives liées aux types de documents
Indexes : autorise l’indexation des répertoires
Limit : autorise les directives de gestion d’accès
ExecCGI : autorise les programmes CGI
FollowSymLinks : autorise le suivi des liens symboliques rencontrés dans le répertoire

Pour Options : OOn peut utiliser


All : tout type de redéfinition est autorisé dans le .htaccess

https://www.linuxtricks.fr/wiki/apache-les-virtual-hosts 3/7
20/03/2024 23:45 Apache : Les Virtual Hosts - Wiki - Wiki

Includes : Inclusions côté serveur (mod_include) autorisées


Table des matières
Indexes : autorise l’indexation des répertoires
ExecCGI : autorise les programmes CGI
FollowSymLinks : autorise le suivi des liens symboliques rencontrés dans le répertoire

Exemples avec 2 Noms de domaines


Voici l'exemple avec 2 VirtualHosts représentant 2 sites hébergés sur la même machine : dev.linuxtricks.fr et
marjo21.linuxtricks.fr. On peut avoir autant de VirtualHosts qu'on le souhaite sur une même machine.

Pour me repérer facilement, je nomme chaque fichier nomdedomaine.conf :

Code BASH :  Copier vers le presse-papier

vi /etc/apache2/vhosts.d/dev.linuxtricks.conf

Code BASH :  Copier vers le presse-papier

<VirtualHost *:80>
ServerName dev.linuxtricks.fr
ServerAlias dev.linuxtricks.fr
ServerAdmin webmaster@linuxtricks.fr
ErrorLog /var/log/apache2/dev.linuxtricks.fr-error_log
TransferLog /var/log/apache2/dev.linuxtricks.fr-access_log
DocumentRoot "/var/www/localhost/htdocs/dev/"
<Directory "/var/www/localhost/htdocs/dev/">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

Code BASH :  Copier vers le presse-papier

vi /etc/apache2/vhosts.d/marjo21.linuxtricks.conf

Code BASH :  Copier vers le presse-papier

<VirtualHost *:80>
ServerName marjo21.linuxtricks.fr
ServerAlias marjo21.linuxtricks.fr
ServerAdmin webmaster@linuxtricks.fr
ErrorLog /var/log/apache2/marjo21.linuxtricks.fr-error_log
TransferLog /var/log/apache2/marjo21.linuxtricks.fr-access_log
DocumentRoot "/var/www/localhost/htdocs/marjo21/"
<Directory "/var/www/localhost/htdocs/marjo21/">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
https://www.linuxtricks.fr/wiki/apache-les-virtual-hosts 4/7
20/03/2024 23:45 Apache : Les Virtual Hosts - Wiki - Wiki

Table des matières

Et pour du SSL ?
Je vais faire simple, je vous montre pour le miroir Calculate Linuxtricks les 2 Virtualhosts configurés (simulta‐
nément) afin que vous voyiez les différences (ce qui a été ajouté). A savoir le port d'écoute et les 3 lignes com‐
mençant par SSL.

Accès au site en HTTP et HTTPS

Code BASH :  Copier vers le presse-papier

<VirtualHost *:80>
DocumentRoot /home/miroir/public_html/
ServerName miroir.linuxtricks.fr
ServerAdmin adrien.d@mageialinux-online.org
ErrorLog /var/log/httpd/miroir.linuxtricks.fr-error_log
TransferLog /var/log/httpd/miroir.linuxtricks.fr-access_log
ServerSignature Off

<Directory /home/miroir/public_html>
Options Indexes +FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>

<VirtualHost *:443>
DocumentRoot /home/miroir/public_html/
ServerName miroir.linuxtricks.fr
ServerAdmin adrien.d@mageialinux-online.org
ErrorLog /var/log/httpd/miroir.linuxtricks.fr-error_log
TransferLog /var/log/httpd/miroir.linuxtricks.fr-access_log
ServerSignature Off

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/miroir.linuxtricks.fr/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/miroir.linuxtricks.fr/privkey.pem

<Directory /home/miroir/public_html>
Options Indexes +FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>

Dans ce cas, l'accès en HTTP reste en HTTP.


L'accès HTTPS reste HTTPS.

Forcer le HTTP en HTTPS


Si on souhaite forcer le HTTP vers HTTPS, on ajoute ceci dans le bloc Virtualhost *:80.

https://www.linuxtricks.fr/wiki/apache-les-virtual-hosts 5/7
20/03/2024 23:45 Apache : Les Virtual Hosts - Wiki - Wiki

Voici un exemple pour ce site www.linuxtricks.fr : des matières


Table

Code BASH :  Copier vers le presse-papier

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge/
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule (.*) https://www.linuxtricks.fr$1 [R=301,L]

La première ligne RewriteCond permet de conserver du HTTP simple pour les requêtes Lets Encrypt (dossier
.well-known/acme-challenge à la racine du site).
La deuxième ligne RewriteCond permet de vérifier en amont qu'on n'est pas en https.

Ecouter sur plusieurs ports


Si on souhaite ajouter un vhost qui écoute sur un autre port, il suffit d'ajouter une directive listen en plus dans le
fichier de configuration du vhost :

Code BASH :  Copier vers le presse-papier

Listen 8080
<VirtualHost *:8080>
#Le contenu du vhost
</VirtualHost>

Les Virtualhosts qui doivent écouter que sur une


seule IP
Si on dispose de plusieurs adresses IP sur le serveur, on peut avoir besoin de spécifier que le VirtualHost
n'écoute sur qu'une adresse IP.

Précédemment, on a vu

Code TEXT :  Copier vers le presse-papier

<VirtualHost *:443>
...
</VirtualHost>

Le * signifie toutes les IP.

Filtrer avec une seule IPv4

https://www.linuxtricks.fr/wiki/apache-les-virtual-hosts 6/7
20/03/2024 23:45 Apache : Les Virtual Hosts - Wiki - Wiki

Table des matières


En IPv4, on procédera ainsi :

Code TEXT :  Copier vers le presse-papier

<VirtualHost 192.168.21.100:443>
...
</VirtualHost>

Filtrer avec une seule IPv6


En IPv6, on mettra l'IP entre crochets :

Code TEXT :  Copier vers le presse-papier

<VirtualHost [fe80::225:64ff:feb4:44fe]:443>
...
</VirtualHost>

Pour ceux qui voudront tester l'accès au VirtualHost en IPv6, il faut taper l'IPv6 entre crochets dans le naviga‐
teur internet :

Code TEXT :  Copier vers le presse-papier

https://[fe80::225:64ff:feb4:44fe]

   

Cette page a été vue 89002 fois


Boosté par PHPBoost | Mentions légales
Linuxtricks est mis à disposition selon les termes : Licence Creative Commons

https://www.linuxtricks.fr/wiki/apache-les-virtual-hosts 7/7

Vous aimerez peut-être aussi