Nginx redirecionando o domínio para a porta 8000 com um 301

3

Eu tenho procurado em todos os lugares para descobrir por que meu servidor nginx está causando um redirecionamento 301 em um domínio e não no outro. Eu tenho dois sites configurados neste servidor em um estilo apache (sites disponíveis). Vamos dizer domain1.com e domain2.com. Eu também estou executando o PHP-FPM. Aqui estão as configurações

Domain1.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;
        }   
}

Domain2.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;
        }   
}

Você notará que estes são basicamente os mesmos, exceto para o server_name e root. Caso contrário, eles são idênticos. Agora aqui está a situação. domain1.com funciona bem, sem problemas. O site do domínio2 foi testado ONCE usando o recurso 8000 quando o DNS do domínio2.com não foi alterado para o servidor. Quando foi testado como IP: 8000, funcionou bem, então mudei para o domínio, mudei a porta para 80, e tive o DNS alterado. O servidor foi completamente desligado e o nginx e o php5-fpm foram reiniciados 100 vezes.

Se eu visitar o domínio2.com no navegador, ele redirecionará automaticamente para o domínio2.com:8000. Se eu usar web-sniffer.net e olhar para o cabeçalho HTTP, ele retornará um redirecionamento 301. Eu nunca configuro um redirecionamento, e não há configuração do 301 em nenhum lugar deste servidor. O que realmente me incomoda é se eu visitar www.domain2.com, quando eu removê-lo do arquivo de configuração nginx em server_name, vejo a página nginx padrão, o que significa que está funcionando bem. Depois de adicionar o www.domain2.com à diretiva server_name na configuração, o redirecionamento 301 é iniciado novamente.

Eu também adicionei o port_in_redirect na seção http do meu nginx.conf, o que não parece fazer nada.

Alguém tem alguma ideia do que está acontecendo aqui?

Edite: curl-v link

* 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
    
por David Allen 13.01.2014 / 18:25

1 resposta

1

É um pouco difícil de adivinhar sem ver a saída real do servidor, sugiro usar curl -v http://example2.com/ para ver o que é realmente retornado, mas acho que seu navegador armazenou o redirecionamento no cache. Eu já vi isso antes.

O uso de um navegador diferente mostra o mesmo redirecionamento?

Atualização : Conforme sua saída de diagnóstico, parece claro que isso foi causado pelo envio de redirecionamento do Wordpress, em vez de nginx .

    
por 13.01.2014 / 18:32