Назад | Перейти на главную страницу

Обратный прокси-сервер Nginx с динамической переадресацией портов

Я настраиваю обратный прокси на Nginx. Мне нужно, чтобы слушать несколько портов. Затем я хотел бы использовать тот же порт на внутреннем сервере. Как это: http: // frontendserver: 9000 -> http: // backendserver: 9000.

Вот что, как я думал, сработает

   ## server configuration
    server {

        listen 9000 ;
        listen 9001 ;
        listen 9002 ;
        listen 9003 ;
        listen 9004 ;
        listen 9005 ;
        listen 9006 ;
        listen 9007 ;
        listen 9008 ;
        listen 9009 ;

        server_name frontendserver;

        if ($http_x_forwarded_proto = '') {
            set $http_x_forwarded_proto  $scheme;
        }

        location / {
                proxy_read_timeout  900;
                proxy_pass_header   Server;
                proxy_cookie_path ~*^/.* /;
                proxy_pass         http://backendserver:$server_port/;
                proxy_set_header    X-Forwarded-Port  $server_port;
                proxy_set_header    X-Forwarded-Proto $http_x_forwarded_proto;
                proxy_set_header    Host              $http_host;
                proxy_set_header    X-Forwarded-For   $proxy_add_x_forwarded_for;
        }
    }

но это дает мне ошибку 502 Bad Gateway. Есть какие-нибудь подсказки, почему это так, или есть ли другой способ сделать это, как описано выше?

Если я изменю:

proxy_pass         http://backendserver:$server_port/;

к

proxy_pass         http://backendserver:9000/;

он отлично работает, это, конечно, противоречит цели ...