2 votes

Est-il possible de définir ServerName avec une variable d'environnement dans Apache ?

Comment puis-je définir le ServerName dans Apache à la variable d'environnement HTTP_HOST

J'ai essayé :

ServerName %{HTTP_HOST} #or ServerName ${HTTP_HOST} or expr=%{HTTPS}

Define server_name %{HTTP_HOST} #or ${HTTP_HOST} or expr=%{HTTPS}

Rien ne fonctionne. Y a-t-il un moyen de faire cela ?

0voto

Esa Jokinen Points 41064

Ce n'est pas possible, et vous n'en avez même pas besoin. Si cela était possible, cela entrerait en conflit avec l'initiative Correspondance des hôtes virtuels . Comme le HTTP_HOST contient la valeur de la variable de serveur Host: cela signifierait qu'il correspond toujours à chaque demande. Apache fonctionne déjà de cette manière : s'il n'y a pas d'hôte virtuel correspondant, il utilisera le premier hôte virtuel basé sur le nom pour cette IP et ce port.

Le premier serveur virtuel basé sur le nom dans le fichier de configuration pour un serveur donné IP:port donné est important car il est utilisé pour toutes les demandes reçues sur cette adresse et ce port et pour lesquelles aucun autre serveur virtuel pour cette paire IP:port n'est utilisé. pour cette paire IP:port n'a un ServerName o ServerAlias . Il est également utilisé pour toutes les connexions SSL si le serveur ne prend pas en charge le protocole Nom du serveur Indication .

Par conséquent, le fait de n'avoir qu'un seul hôte virtuel basé sur un nom serait identique à ce que vous essayez probablement de faire avec votre ServerName %{HTTP_HOST} .

0 votes

Lorsque je n'utilise pas ServerName, il utilise simplement le nom d'hôte de mon serveur, comme suit my-server.servername.com Pourquoi ? Il n'affiche pas l'en-tête de l'hôte ?

1 votes

Voir le Héritage du nom du serveur de Support des hôtes virtuels basés sur les noms : "Il est préférable de toujours lister explicitement une ServerName dans chaque hôte virtuel basé sur le nom. Si un VirtualHost ne spécifie pas un ServerName un nom de serveur sera hérité de la configuration du serveur de base. Si aucun nom de serveur n'a été spécifié globalement, un est détecté au démarrage par résolution DNS inverse de la première adresse d'écoute."

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X