Я использую nginx в качестве обратного прокси для настройки tomcat, и все работает нормально для части MOST, единственная проблема, с которой я сталкиваюсь, заключается в том, что каждый запрос на адрес http приводит к созданию нового идентификатора JSESSION (этого не происходит в http), вот соответствующая часть конфигурации NGINX:
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
proxy_connect_timeout 240;
proxy_send_timeout 240;
proxy_read_timeout 240;
proxy_pass http://localhost:8080;
}
Есть идеи, почему я постоянно создаю новые jsessionids?
Добавьте следующий фрагмент в свой файл конфигурации и повторите попытку:
if ($http_cookie ~* "jsessionid=([^;]+)(?:;|$)") {
set $co "jsessionid=$1";
}
proxy_set_header Cookie "$co";
В моей среде это поведение было вызвано Tomcat или сервлет ожидал другого пути cookie из-за изменения корня во время проксирования:
Установка пути через proxy_cookie_path
помогло:
location / {
proxy_pass http://localhost:8080/webapp/;
proxy_cookie_path /webapp/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}