Nginx: Как преобразовать прокси 2 указанные c порты в другие указанные c порты с тем же именем сервера? - PullRequest
0 голосов
/ 01 апреля 2020

Я пытаюсь использовать Nginx обратный прокси-порт 80 для порта 5000 и порт 8080 для порта 8081. Я настроил ssl так, чтобы GET http://DOMAIN:80 с перенаправлением на порт 443 - это прекрасно работает.

Я настроил другой блок сервера с поддоменом server_name api.DOMAIN прослушивания порта 8080. Обратный прокси-сервер предполагает передачу запросов на localhost:8081, но когда я запускаю curl http://api.DOMAIN:8080/, я получаю Operation timed out. Кажется, что Nginx на самом деле не слушает порт 8080, хотя при запуске

lsof -i :8080

я получаю:

nginx   20836     root   10u  IPv4 3939217      0t0  TCP *:http-alt (LISTEN)
nginx   20840 www-data   10u  IPv4 3939217      0t0  TCP *:http-alt (LISTEN)

Используемая конфигурация:

server {

        server_name DOMAIN;

        location / {
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
             proxy_set_header X-Forwarded-Proto $scheme;
             proxy_set_header X-Forwarded-Port $server_port;

             proxy_pass http://localhost:5000/;
        }

    listen 443 ssl; 
    ssl_certificate PATH_TO_PEM_FILE/PEM.pem; 
    ssl_certificate_key PATH_TO_PRIVATE_KEY/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf; 
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

}

 server {

        server_name api.DOMAIN;
        listen 8080;

        location / {
                proxy_pass http://localhost:8081/;
        }
}

server {
    if ($host = DOMAIN) {
        return 301 https://$host$request_uri;
    }



        server_name askalgotrader.com;
    listen 80;
    return 404; # managed by Certbot


}

Что я делаю не так?

1 Ответ

0 голосов
/ 02 апреля 2020

Я понял это. Оказалось, что порт 8080 был заблокирован брандмауэром. ufw allow 8080 решил это.

...