В настоящее время я использую nginx 1.9.11. У меня есть ситуация, когда мое приложение подается из динамического порта через балансировщик нагрузки, но установлен порт в самом приложении. Похоже, что этотnginx: Как мне сделать переписывание (перенаправление)? (т. е. не возиться с номером порта!)
Port [4000-4999] on load balancer -> instances of nginx all on port 80
мне нужно перенаправить /myapp
к /myapp/
без потери информации порта. Но я не знаю порт на уровне приложения, потому что приложения динамически создаются и уничтожаются!
Вот синтаксис моего правила перезаписи:
rewrite ^/myapp /myapp/
Что я получаю:
http://example.com:4000/myapp -> http://example.com/myapp # no port 4000!
Я не могу жёстко порт ... потому что есть тысяча возможностей, и они меняют все время! Мне нужно остаться в том же порту, но я не знаю, в какой порт мы вошли. Как я могу заставить nginx покинуть порт?
То, что я уже пробовал ...
В http
, server
и location
разделы:
port_in_redirect off;
В разделе server
:
proxy_set_header Host $host:$server_port;
Также в т он server
раздел:
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_redirect off;