VirtualHost no se considera la mejor opción

VirtualHost no se considera la mejor opción

tengo un archivo llamadopga-default.confque parece,

<VirtualHost *:8008>
    ServerName 192.168.1.10

    DocumentRoot /var/www/portals/default/public

    <Directory "/var/www/portals/default/public">
       AllowOverride All
    </Directory>
    ErrorLog /var/log/httpd/default.error.log
    CustomLog /var/log/httpd/default.requests.log combined
</VirtualHost>

El problema es que cada vez que lo intentohttp://192.168.1.10:8008siempre carga la página de prueba de Apache predeterminada. predeterminado.confparece,

Listen 8008
<VirtualHost _default_:8008>
    DocumentRoot "/www/default"
</VirtualHost>

Pero cuando cambio el <VirtualHost *:8008>en<VirtualHost 192.168.1.10:8008>pga-default.confFunciona como se esperaba. Quiero saber por qué es esto. Hasta donde yo sé, esto se debe a que el servidor no elige VirtualHost como la mejor opción para la dirección IP y el puerto en particular. (Esta respuesta confirma quediferencia entre _default_:* y *:* en el contexto de VirtualHost)

También probé varios otros métodos, pero ninguno funcionó excepto el método mencionado anteriormente. A continuación se muestran los otros métodos. (Cambios parapga-default.conf)

  • Cambiar ServerName 192.168.1.10aServerName 192.168.1.10:8008
  • UsadoServerAlias 192.168.1.10

Nota- Con la configuración anterior, <VirtualHost *:8008>algunos de mis colegas obtuvieron resultados exitosos. Este problema ocurrió sólo para mí.

¿Qué me he perdido aquí? ¿Cómo es posible que otros obtengan los resultados esperados y yo no?

Respuesta1

Siempre debes definir ServerName en cada virtualhost.

Dado que probablemente su "predeterminado" se carga primero y no tiene un nombre de servidor específico, está atendiendo todas las solicitudes. Puede intentar esto fácilmente configurando "Nombre de servidor predeterminado" en el host virtual predeterminado.

Entonces cuando lo solicites "http://192.168.1.10:8008"ahora aterrizará en el host virtual apropiado.

Así que recuerde, la mejor práctica es definir siempre una directiva ServerName única en todos y cada uno de los hosts virtuales, y considere que cuando ningún nombre de host solicitado coincida con los hosts virtuales definidos, el primer host virtual aceptará la solicitud; además, si accidentalmente define primero el mismo nombre de servidor en dos hosts virtuales El virtualhost cargado aceptará la solicitud.

información relacionada