Редирект 302 не работает за обратным прокси-сервером nginx - PullRequest
0 голосов
/ 08 июня 2018

В настоящее время мы переключаемся с Pound на Nginx для нашего обратного прокси-сервера, у меня все работает, кроме одного сайта.

У нас есть раздельные настройки DNS.Все наши веб-серверы находятся за нашим брандмауэром.Если вы находитесь в нашей сети, наш внутренний DNS указывает непосредственно на наши веб-серверы.Если вы находитесь за пределами нашей сети, наш внешний DNS-сервер указывает на наш обратный прокси-сервер, который перенаправляет трафик через наш брандмауэр на веб-серверы.

У нас есть один сайт, который, конечно, является программным обеспечением поставщика (ужасно!) В основном, если наши пользователи идутна http://abc.foo.com сервер отправляет код перенаправления 302 и указывает их на https://login.vendorsite.com

Это перенаправление работает изнутри, но если вы подключаетесь извне, перенаправление 302 никогда не делает это через nginx.Они остаются на abc.foo.com, и вместо этого Nginx возвращает статус 200.

У нас никогда не было этой проблемы с фунтом, фунт разрешает перенаправление без проблем.

Вот мойтекущая конфигурация для nginx:

server {
    listen 80;
    server_name abc.foo.com;

    location / {
        proxy_set_header Host &host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://webserveripaddress;
    }
}

Ответы [ 2 ]

0 голосов
/ 08 июня 2018

По-видимому, мы больше не используем внутренний сервер для abc.foo.com. Они изменили запись DNS на внешнем DNS и никогда не удаляли информацию со старого обратного прокси-сервера, поскольку "он все равно больше туда не ходил".

Так что Nginx работает как надо.

0 голосов
/ 08 июня 2018

Полагаю, вы что-то упустили, но если это действительно так просто, вы можете просто использовать return

location / {
     return 301 http://webserveripaddress;
}
...