В моем предыдущем вопросе здесь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;
Это лишь догадки без доступа к полной информации, надеюсь, они помогут.