Nginx redirige el dominio al puerto 8000 con un 301

Nginx redirige el dominio al puerto 8000 con un 301

He estado buscando por todas partes para descubrir por qué mi servidor nginx está provocando una redirección 301 en un dominio y no en el otro. Tengo dos sitios configurados en este servidor en estilo apache (sitios disponibles). Digamos dominio1.com y dominio2.com. También estoy ejecutando PHP-FPM. Aquí están las configuraciones.

Dominio1.com

server {
        listen   80; ## listen for ipv4; this line is default and implied
        server_name domain1.com www.domain1.com; 

        root /var/www/domain1.com;
        index index.php index.html index.htm;


        location / { 
                try_files $uri $uri/ /index.php?$args;
        }   

        #error_page 404 /404.html;

        # redirect server error pages to the static page /50x.html
        #   
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
                root /usr/share/nginx/www;
        }   

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #   
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;

        }   

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one 
        #   
        location ~ /\.ht {
                deny all;
        }   
}

Dominio2.com

server {
        listen   80; ## listen for ipv4; this line is default and implied
        server_name domain2.com www.domain2.com; 

        root /home/mike/www;
        index index.php index.html index.htm;


        location / { 
                try_files $uri $uri/ /index.php?$args;
        }   

        #error_page 404 /404.html;

        # redirect server error pages to the static page /50x.html
        #   
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
                root /usr/share/nginx/www;
        }   

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #   
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;

        }   

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one 
        #   
        location ~ /\.ht {
                deny all;
        }   
}

Notarás que estos son básicamente exactamente iguales, salvo el nombre del servidor y la raíz. Por lo demás son idénticos. Ahora aquí está la situación. domain1.com funciona bien, no hay problemas. El sitio para dominio2 se probó UNA VEZ usando listening 8000 cuando el DNS para dominio2.com no se cambió al servidor. Cuando se probó como IP:8000, funcionó bien, así que lo cambié al dominio, cambié el puerto a 80 y cambié el DNS. Desde entonces, el servidor se ha reiniciado por completo y nginx y php5-fpm se han reiniciado probablemente 100 veces.

Si visito dominio2.com en el navegador, se redirige automáticamente a dominio2.com:8000. Si uso web-sniffer.net y miro el encabezado HTTP, devuelve una redirección 301. Nunca configuro una redirección y no hay configuraciones 301 en ningún lugar de este servidor. Lo que realmente me molesta es que si visito www.domain2.com, cuando lo eliminé del archivo de configuración de nginx en server_name, veo la página predeterminada de nginx, lo que significa que está funcionando bien. Una vez que agrego www.domain2.com a la directiva server_name en la configuración, se inicia la redirección 301 nuevamente.

También agregué port_in_redirect off en la sección http en mi nginx.conf, lo que no pareció hacer nada.

¿Alguien tiene alguna idea de lo que está pasando aquí?

Editar: curl-vhttp://dominio2.com

* About to connect() to domain2.com port 80 (#0)
*   Trying 162.243.XXX.XXX... connected
> GET / HTTP/1.1
> User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
> Host: domain2.com
> Accept: */*
> 
< HTTP/1.1 301 Moved Permanently
< Server: nginx/1.1.19
< Date: Mon, 13 Jan 2014 17:37:07 GMT
< Content-Type: text/html; charset=UTF-8
< Transfer-Encoding: chunked
< Connection: keep-alive
< X-Powered-By: PHP/5.3.10-1ubuntu3.9
< X-Pingback: http://162.243.XXX.XXX:8000/xmlrpc.php
< Location: http://domain2.com:8000/
< 
* Connection #0 to host domain2.com left intact
* Closing connection #0

Respuesta1

Es un poco difícil de adivinar sin ver el resultado real del servidor, sugeriría usarlo curl -v http://example2.com/para ver qué se devuelve realmente, pero supongo que su navegador ha almacenado en caché la redirección. He visto eso antes.

¿El uso de un navegador diferente muestra la misma redirección?

Actualizar: Según el resultado de su diagnóstico, parece claro que esto se debió a que Wordpress emitió la redirección, en lugar de nginx.

información relacionada