Попробуйте использовать поддержку обратного прокси . Пример locationраздела будет:
location / {
proxy_pass http://localhost:8080;
proxy_redirect http://localhost:8080/ /;
proxy_read_timeout 60s;
# May not need or want to set Host. Should default to the above hostname.
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
В этом примере все запросы к этому serverблоку будут передаваться на второй запущенный сервер localhost:8080. Это сохраняет POSTи должно также сохранять другие типы запросов, если это когда-либо станет проблемой.
Проблема в том, что внешние перенаправления никогда не будут повторно отправлять POSTданные. Это записано в спецификации HTTP (см. Раздел 3xx). Любой клиент, который делает это, нарушает спецификацию.
Если код состояния 301/302 получен в ответ на запрос, отличный от GET или HEAD, пользовательский агент НЕ ДОЛЖЕН автоматически перенаправлять запрос, если он не может быть подтвержден пользователем, поскольку это может изменить условия, при которых был выдан запрос ,
Я вполне уверен, что большинство браузеров реализуют это, просто заставляя перенаправленный запрос быть GETзапросом. Теоретически, спецификация допускает браузер, который спрашивает пользователя, следует ли перенаправлять POSTданные, но я не знаю ничего, что в настоящее время делает.