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.10
aServerName 192.168.1.10:8008
- Usado
ServerAlias 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.