nginx 使用 IP 和本地名称将流量重定向到非域名

nginx direct trafic to non domain name using IP and local names

在 windows 服务器上使用 nginx 我想使用非域名的名称将流量定向到不同的端口,第一个有效但第二个无法到达:为什么?怎么了? http://192.xxx.xxx.xxx/game:有效 http://192.xxx.xxx.xxx/cms:永远达不到。 如果我更改名称,则 cms 可以正常工作,而游戏永远无法访问。

server {
    listen       80;
    server_name  game;
    location /{
        proxy_pass http://localhost:4040;
        proxy_connect_timeout 60s;
        proxy_read_timeout 5400s;
        proxy_send_timeout 5400s;
        proxy_set_header host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_redirect default;
    }
location /uploads/ {
        root c:\Ebrahimi\www\appGame;
}
}

server {
    listen       80;
    server_name  cms;
    location /{
        proxy_pass http://localhost:2010;
        proxy_connect_timeout 60s;
        proxy_read_timeout 5400s;
        proxy_send_timeout 5400s;
        proxy_set_header host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_redirect default;
    }
location /uploads/ {
        root c:\Ebrahimi\www\appCms;
}
}

"Richard Smith" 提到的新代码块:

server {
    listen       80;
    location /{
        proxy_pass http://localhost:4040;
        proxy_connect_timeout 60s;
        proxy_read_timeout 5400s;
        proxy_send_timeout 5400s;
        proxy_set_header host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_redirect default;
    }
location /uploads/ {
        root c:\Ebrahimi\www\appGame;
}
location /game {
        proxy_pass http://localhost:4040;
}
location /cms{
        proxy_pass http://localhost:2010;
}
}

第二个 server 块只能使用其 server_name 访问,例如:http://app.firouzeh-mfg.ir/

如果您使用其 IP 地址访问您的服务器,请求将由第一个 server 块(或标记为 default_server 的块)处理。有关详细信息,请参阅 this document

您的两个 URL http://192.x.x.x/gamehttp://192.x.x.x/cms(假设 IP 地址相同)访问相同的 server 块,仅 location.

不同

例如:

server {
    location /game {
        proxy_pass http://localhost:4040;
    }
    location /cms{
        proxy_pass http://localhost:2010;
    }
}