
Tengo mi sitio en la IP 1.2.3.4
En mi proveedor de dominio tengo onesite.com y anothersite.com apuntando a 1.2.3.4
Con Nginx tengo dos sitios configurados:
server {
listen 1.2.3.4:80;
server_name www.oneserver.com;
rewrite ^(.*) http://onserver.com$1 permanent;
}
server {
listen 1.2.3.4:80;
server_name onserver.com;
location / {
fastcgi_pass 127.0.0.1:8878;
[..]
Y:
server {
listen 1.2.3.4:80;
server_name myapp.anotherserver.com;
location / {
fastcgi_pass unix:/tmp/myapp.sock;
[..]
Cuando accedo a myapp.anotherserver.com me redirigen a oneserver.com
¿Alguna ayuda?
Respuesta1
Como user186340
se señaló, su fragmento de configuración se ve bien y el acceso myapp.anotherserver.com
en el puerto 80
debe realizarse en el tercer bloque que proporcionó. Si no funciona como usted describe, puede ser porque no está cargado.
- Asegúrese de que toda la configuración que mostró aquí haya sido encontrada/cargada por nginx
- Úselo
nginx -t
para validar su configuración. - Supervise su registro de errores cuando envíe un
HUP
señalal proceso maestro de nginx para detectar cualquier mensaje de error que aparezca - Si está utilizando nginx v1.9.2+, es posible que desee utilizar
nginx -T
para volcar la configuración cargada a la salida estándar
Si todo lo siguiente estuvo bien, probablemente modificó la configuración mostrada en comparación con la que usa efectivamente.
Respuesta2
El problema es que Nginx elige el servidor predeterminado y lo sirve a cualquier solicitud sin un servidor definido explícitamente. Mi solución es definir un servidor predeterminado que no haga nada.
# This just prevents Nginx picking a random default server if it doesn't know which
# server block to send a request to
server {
# You can add 443/ssl if you need to
listen 80 default_server;
server_name _;
access_log off; log_not_found off;
# "I'm a teapot", effectively "go away" https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#4xx_Client_Error
# Code 403 (forbidden), 410 (gone) or 501 (not implemented) is probably a better choice https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#4xx_Client_Error
return 418;
}