Мы настроили обратный прокси-сервер nginx для обработки запросов, поступающих на наш сервер приложений. Если страница не найдена на сервере приложений, сервер возвращает 404, и мы отправляем запрос на наш cms-сервер, ища там страницу. Эта настройка работает до сих пор, но у нас есть проблемы, когда оба прокси-сервера (приложение и cms) отправляют заголовок «Set-Cookie» в ответе, когда страница не найдена на сервере приложения. Клиенту отправляются только файлы cookie с сервера cms.
Можно ли даже объединить заголовки "Set-Cookie" обоих прокси-серверов? И если да, то как это делается?
Мы думали отправить заголовки ответов set-cookie с сервера приложений на сервер cms, а затем и их туда другим cookie-файлам, которые отправляются клиенту.
proxy_set_header App-Cookies $http_set_cookie;
Но заголовки set-cookie не передаются на сервер cms.
server {
listen 443;
...
location / {
proxy_pass http://app;
proxy_pass_header Set-Cookie;
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_set_header X-Forwarded-Proto https;
proxy_connect_timeout 120;
proxy_send_timeout 120;
proxy_read_timeout 120;
send_timeout 120;
error_page 404 = @cms;
proxy_intercept_errors on;
}
location @cms {
proxy_pass http://cms;
proxy_pass_header Set-Cookie;
proxy_set_header Host $host:8081;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Scheme on;
# not working
proxy_set_header App-Cookies $http_set_cookie;
proxy_redirect http:// $scheme://;
}
}