首页 > 解决方案 > Nginx 将流量发送到错误的端口

问题描述

我有 2 个 Nginx 配置文件(为了隐私而更改了域)。

server {

    listen 80;
    listen 443 ssl http2;

    server_name beta.mydomain.io;

    ssl_certificate /etc/letsencrypt/live/mydomain.io/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mydomain.io/privkey.pem;

    if ($scheme = http) {
        return 301 https://$host$request_uri;
    }

    location / {
        proxy_pass http://localhost:3001;
        proxy_buffering off;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
server {

    listen 80;
    listen 443 ssl http2;

    server_name mydomain.io, www.mydomain.io;

    ssl_certificate /etc/letsencrypt/live/mydomain.io/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mydomain.io/privkey.pem;

    if ($scheme = http) {
        return 301 https://$host$request_uri;
    }

    location / {
        proxy_pass http://127.0.0.1:3002;
        proxy_buffering off;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

出于某种原因,导航到 mydomain.io 会将您带到 beta 版本,只有 www.mydomain.io 会将您带到端口 3002 上的那个。我似乎找不到其他人遇到此问题。

标签: nginx

解决方案


我正要发布这个问题然后意识到我的错误。我在域之间添加了一个逗号,这不是 server_name 指令的正确语法。我希望它可以帮助别人。我将其删除并重新启动了 nginx 服务器。它现在工作得很好。


推荐阅读