【问题标题】:Nginx: How to reverse proxy 2 specific ports to another specific ports with the same server_name?Nginx:如何将 2 个特定端口反向代理到具有相同 server_name 的另一个特定端口?
【发布时间】: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


【解决方案1】:

我想通了。原来端口8080被防火墙阻止了。 ufw allow 8080 解决了。

【讨论】:

    猜你喜欢
    • 2021-05-28
    • 1970-01-01
    • 1970-01-01
    • 2017-02-26
    • 1970-01-01
    • 2017-06-22
    • 2023-03-13
    • 1970-01-01
    • 2016-01-26
    相关资源
    最近更新 更多