Accediendo a un vhost en una LAN

Accediendo a un vhost en una LAN

Tengo un servidor LAMP configurado para servir VHOST. El problema aquí es que cuando intento acceder a través de la misma LAN, parece que intento acceder a la dirección IP local y no a la dirección VHOST. Sin embargo, cuando intento acceder al servidor desde fuera, muestra el VHOST correcto. Necesito configurar Apache para que de alguna manera sirva al sitio correcto y no al sitio predeterminado. ¿Cómo hago esto?

Aquí hay un ejemplo de dos de mis entradas de VHOST.

Por defecto

<VirtualHost *:80>
    ServerAdmin [email]
    ServerName eresk.fi

    DocumentRoot /home/web/apache-webserver/public_html/
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /home/web/apache-webserver/public_html/>
            Options -Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /home/web/apache-webserver/cgi-bin/
    <Directory "/home/web/apache-webserver/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>

Otro sitio

<VirtualHost *:80>
    ServerAdmin [email]
    ServerName diggety.net
    ServerAlias *.diggety.net

    DocumentRoot /home/web/diggety/public_html/
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /home/web/diggety/public_html/>
            Options -Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /home/web/diggety/cgi-bin/
    <Directory "/home/web/diggety/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

    <IfModule php5_mod.c>
            php_value session.gc_maxlifetime 604800
    </IfModule>


    ErrorLog ${APACHE_LOG_DIR}/error_diggety.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access_diggety.log combined
</VirtualHost>

Respuesta1

Esto no es culpa de Apache. Las directivas de VirtualHost no funcionan para solicitudes vía IP. La computadora en su LAN desde la cual accede al sitio verifica los servidores DNS y, como resultado, obtiene una IP externa. Si el servidor está en la misma red, entonces un enrutador adecuado en su red debería resolverlo/enrutarlo correctamente, pero este no siempre es el caso con algunos enrutadores.

Para probar esto, en un cliente agregue una entrada DNS personalizada para su dominio y asigne la IP interna de su servidor. Edite /etc/hostssi el cliente es Linux o C:\Windows\system32\drivers\etc\hostssi el cliente es Windows y agregue esto (cambie 10.0.0.1 con la IP interna de su servidor):

10.0.0.1 domain.com

Actualizar: Si la solución con DNS funciona, lo que puede hacer es configurar un servidor DNS personalizado en su red interna que le permitirá configurar entradas DNS personalizadas. De esta manera no necesitará configurarlo manualmente en los clientes.

información relacionada