Я пытаюсь использовать 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
}
Что я делаю не так?