LINUX.ORG.RU
решено ФорумAdmin

Nginx: При заходе на сайт, происходит редирект на другой сайт сервера.

 ,


0

2

Всем привет! У меня такая проблема - на сервере nginx был размещён один сайт. Понадобилось добавить ещё один, создал для него конфиг, но при открытии нового сайта, почему-то открывается второй сайт, а именно - происходит тупо редирект с одного домена на другой.

Конфиг первого сайта(почистил из него настройки https, логов):

server {
    listen 80;
    listen [::]:80;

    server_name site1.com;
    return 301 https://site1.com$request_uri;

}

server {
    listen 443 ssl http2;
    server_name site1.com;

    location  / {

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass http://127.0.0.1:4577/;
        proxy_redirect off;

        # Socket.IO Support
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

    }

}

Конфиг второго сайта, тоже почистил от настроек логов и т.д. чтобы меньше текста было:

server {
    listen *:80;

    server_name site2.com www.site2.com;

    root /home/srv/site2.com;
    index index.html index.htm index.php;

location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
       access_log off; log_not_found off; expires max;
}

location = /favicon.ico {
        log_not_found off;
        access_log off;
}
location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
}

location ~ /\. {
        deny all;
}
location ~* /(?:uploads|files)/.*\.php$ {
        deny all;
}



    location ^~ / {

    }

}
Вроде всё нормально. Но при заходе на адрес site2.com, кидает на site1.com

Что я делаю не так?

эм.. а для второго тебе не нужен proxy_pass ? Или всё действительно так задумано ???

snaf ★★★★★
()
Ответ на: комментарий от snaf

Неа. Второй статичный html. P.S.: Я просто знаю ОПа. Не смог ему помочь.

th3m3 ★★★★★
()
Последнее исправление: th3m3 (всего исправлений: 1)

а именно - происходит тупо редирект с одного домена на другой

через 301? У вас случайно не используется IPV6?

th3m3

snaf ★★★★★
()
Последнее исправление: snaf (всего исправлений: 2)
Ответ на: комментарий от snaf

Первый сайт, там сайт на node.js. Второй сайт - простой html.

На счёт редиректа - не знаю, 301 ли ещё какой. Просто если вводить в браузере site2, редиректит на url site1.

loopergood
() автор топика
Ответ на: комментарий от loopergood

На счёт редиректа - не знаю, 301 ли ещё какой.

Ну так дерни wget'ом.

alozovskoy ★★★★★
()
Ответ на: комментарий от snaf

Упс. Что-то забыл про IPv6 сказать. Используется DigitalOcean, но IPv6 я не настраивал. Где-то скопировал в конфиг первого сайта «listen [::]:80;», но этого наверное мало для IPv6? Я просто ещё не изучал вопрос с настройкой IPv6.

Да, редирект у нас получается 301: HTTP/1.1 301 Moved Permanently Это значит, что почему-то конфиг первого сайта, как-то влияет на второй.

loopergood
() автор топика

Добавь логирование

log_format vhosts '$host $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"';
access_log      /var/log/nginx/site1.access.log vhosts;
error_log       /var/log/nginx/site1.error.log;
Перезагрузить nginx, выполнить curl -I site2.com и скинуть логи сюда.

У site1 тот кто редиректит запретить кэш, добавить до return 301:
add_header Pragma no-cache;

Deleted
()

А чем проверяете? Тот же курл отправляет запросы на IP адрес без указания заголовка Host..

expelled ★★
()
Ответ на: комментарий от expelled

Что проверяю? У меня редиректит с сайта на сайт.

loopergood
() автор топика
Ответ на: комментарий от Deleted

Ok.

$ curl -I site2.com       
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Sat, 04 Jun 2016 20:18:04 GMT
Content-Type: text/html
Content-Length: 178
Connection: keep-alive
Location: https://site1.com
[04/Jun/2016:23:18:04 +0300] "HEAD / HTTP/1.1" 301 0 "-" "curl/7.35.0" "-"

loopergood
() автор топика

Сайты ведь не так называются, верно? ты уверен что нет опечатки во втором конфиге в server_name?

swelf
()
Ответ на: комментарий от swelf

Да, сайты на самом деле не так называются.

Да, всё должно быть правильно написано. Перепроверю конечно, но я уверен, что всё ок с этим.

loopergood
() автор топика
Ответ на: комментарий от expelled

А что изменится? Тоже самое выводится, как если делать

curl -I site2.com

loopergood
() автор топика
Ответ на: комментарий от swelf

Обновил сегодня nginx. Перезагрузил его, заработало. Фиг знат, что такое было. Но всем спасибо!

loopergood
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.