Virtual hosts



  • Hello,

    J'ai une question pour vous : comment on configure correctement des VHOSTS ? Car là, j'ai  deux vhosts avec chacun leurs conf.
    khon.althalus.org
    evething.althalus.org

    Les confs sont les suivantes :

    NameVirtualHost evething.althalus.org:80
    
    <VirtualHost evething.althalus.org:80>
            DocumentRoot /var/www/
            ServerName evething.althalus.org
    
            WSGIDaemonProcess evething threads=2 user=nobody python-path=/var/home/evething/evething/
            WSGIProcessGroup evething
    
            ServerAdmin webmaster@localhost
    
            WSGIScriptAlias / /var/home/evething/evething/evething/wsgi.py
    
            <Directory /var/home/evething>
                <Files wsgi.py>
                    Order allow,deny
                    Allow from all
                </Files>
            </Directory>
    
            ErrorLog ${APACHE_LOG_DIR}/error.log
    
            # Possible values include: debug, info, notice, warn, error, crit,
            # alert, emerg.
            LogLevel warn
    
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    
    
    
    NameVirtualHost khon.althalus.org:80
    <VirtualHost khon.althalus.org:80>
            ServerAdmin webmaster@localhost
    
            DocumentRoot /var/www
            <Directory />
                    Options FollowSymLinks
                    AllowOverride None
            </Directory>
            <Directory /var/www/>
                    Options Indexes FollowSymLinks MultiViews
                    AllowOverride None
                    Order allow,deny
                    allow from all
            </Directory>
    
            ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
            <Directory "/usr/lib/cgi-bin">
                    AllowOverride None
                    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                    Order allow,deny
                    Allow from all
            </Directory>
    
            ErrorLog ${APACHE_LOG_DIR}/error.log
    
            # Possible values include: debug, info, notice, warn, error, crit,
            # alert, emerg.
            LogLevel warn
    
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    

    A priori, c'est bon sauf que, à la place du khon.althalus.org je voulais mettre "*:80", mais en mettant ça, ça ne fonctionne pas…  (enfin, l'ip fonctionne, mais khon/evething pointent les deux sur la conf evething).

    Ce que je ne comprend pas du coup, c'est pourquoi l'ip:80 fonctionne toujours, vu que le *:80 n'est défini nulpart...

    De plus, j'ai ce "warn" au démarrage d'apache :

    [Sat Sep 28 13:27:17 2013] [warn] NameVirtualHost evething.althalus.org:80 has no VirtualHosts

    Est-ce que ma config est correcte ? Il manque des truc pour que ce soit bien fait ? Merci de votre retour :p



  • Ton problème est que la directive NameVirtualHost sert uniquement à spécifier sur quelle ip:port sont activés les virtual host. Idem pour les <VirtualHost …>, seule l'ip est prise en compte. Quand tu écris NameVirtualHost evething.althalus.org:80 Apache résout le nom de domaine et ça devient NameVirtualHost <ip>:80. Il faut utiliser la directive ServerName pour configurer les noms des vhosts (voir la doc sur la question). Par exemple :

    NameVirtualHost *:80
    
    <VirtualHost *:80>
        ServerName khon.althalus.org
        ...
    </VirtualHost>
    
    <VirtualHost *:80>
        ServerName evething.althalus.org
        ...
    </VirtualHost>
    


  • Et du coup il dispatchera selon le nom de domaine sur le bon vhost selon le paramètre vhost ?


Log in to reply