【发布时间】:2020-07-13 05:21:46
【问题描述】:
我正在尝试使用 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
}
我做错了什么?
【问题讨论】:
-
nginx -t命令详细说明了什么?
标签: nginx server ubuntu-18.04