Nginx перенаправляет домен на порт 8000 с 301

Nginx перенаправляет домен на порт 8000 с 301

Я искал везде, чтобы выяснить, почему мой сервер nginx вызывает 301-редиректы на одном домене, а на другом нет. У меня есть два сайта, настроенных на этом сервере в стиле apache (sites-available). Допустим, domain1.com и domain2.com. Я также использую PHP-FPM. Вот конфигурации

Домен1.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;
        }   
}

Домен2.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;
        }   
}

Вы заметите, что они в основном одинаковы, за исключением server_name и root. В остальном они идентичны. Вот ситуация. domain1.com работает отлично, никаких проблем. Сайт для domain2 был протестирован ОДИН РАЗ с использованием listen 8000, когда DNS для domain2.com не был изменен на server. Когда он был протестирован как IP:8000, он работал отлично, поэтому я изменил его на domain, изменил порт на 80 и изменил DNS. С тех пор сервер был полностью выключен и снова включен, а nginx и php5-fpm были перезапущены, наверное, 100 раз.

Если я захожу на domain2.com в браузере, он автоматически перенаправляет на domain2.com:8000. Если я использую web-sniffer.net и смотрю на заголовок HTTP, он возвращает перенаправление 301. Я никогда не настраивал перенаправление, и нигде на этом сервере нет настроек 301. Что меня действительно беспокоит, так это то, что если я захожу на www.domain2.com, то когда я удалил его из файла конфигурации nginx в server_name, я вижу страницу nginx по умолчанию, что означает, что он работает нормально. Как только я добавляю www.domain2.com в директиву server_name в конфигурации, перенаправление 301 начинается снова.

Я также добавил port_in_redirect off в раздел http в моем nginx.conf, но это, похоже, ничего не дало.

Кто-нибудь знает, что здесь происходит?

Редактировать: curl-vhttp://domain2.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

решение1

Немного сложно предположить, не видя фактический вывод с сервера, я бы предложил использовать , curl -v http://example2.com/чтобы увидеть, что на самом деле возвращается, но я предполагаю, что ваш браузер кэшировал перенаправление. Я видел это раньше.

Наблюдается ли та же переадресация при использовании другого браузера?

Обновлять: Согласно вашим диагностическим данным, очевидно, что это было вызвано перенаправлением со стороны Wordpress, а не nginx.

Связанный контент