Невозможно войти в систему или выполнить какие-либо действия при использовании proxy_pass с Nginx

Невозможно войти в систему или выполнить какие-либо действия при использовании proxy_pass с Nginx

В моем предыдущем вопросе здесьnginx разрешает (направляет) все на другой IP, за исключением определенного файла и подкаталогаЯ спросил о разрешении моего сайта whitelabel и его страниц на другой ip, но при этом сохранить некоторые подпапки и файлы на моем сервере для загрузки. Оказалось, что это довольно просто сделать, и окончательное решение получилось таким:

location /robots.txt {
   alias {DOCROOT};
}
server_name {SERVERNAME};
location ~ /\.php$ {
    proxy_pass  10.10.10.10 <== whitelabel ip;
    proxy_set_header Host            {SERVERNAME};
    proxy_set_header X-Forwarded-For myaccount.whitelabelsite.com;
    proxy_redirect off;
    proxy_set_header Connection "Keep-Alive";
    proxy_buffering off;
}

Поэтому здесь я загружаю все со своего whitelabel-сайта под своим доменом, но при этом сохраняю robots.txt для загрузки с моего хостинга и некоторые другие файлы.

Проблема в том, что при использовании этого метода я не могу войти в свою учетную запись на сайте whitelabel.

Итак, {SERVERNAME}директива — это по сути мое доменное имя mydomain.com, и когда я пытаюсь войти в mydomain.com/aff/panelнего, открывается страница, она не выводит никаких ошибок, а просто обновляет страницу и ничего не делает. То же самое происходит, если кто-то хочет сделать бронирование или отправить форму электронной почты. Она открывает страницы, но на самом деле не выполняет никаких действий.

Когда я использовал перенаправление DNS, все работало, а теперь нет. Я пропустил какую-то информацию о прокси или заголовки post/get действий, пересылаемых на и с whitelabel?

решение1

Приложение бэкэнда на "whitelabelsite.com" может работать некорректно без правильно установленного Host. Установите заголовок Host на имя хоста, на который вы проксируете, вместо своего собственного.

proxy_set_header Host myaccount.whitelabelsite.com

Вы уверены, что вам нужно proxy_redirect off? Это может помешать бэкэнд-сайту отправлять перенаправления.

Кроме того, это, скорее всего, не связано с проблемой, но X-Forwarded-Forдолжно быть связано с IP-адресом клиента. У nginx есть специальная переменная для правильного добавления IP-адреса.

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

Это лишь догадки без доступа к полной информации, надеюсь, они помогут.

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