忽略nginx端口添加到url?当我更改nginx端口

时间:2016-08-10 06:30:36

标签: node.js nginx

我想在不同的端口上使用nginx。如果我在默认端口(80)上运行nginx并尝试使用url(100.100.7.60),这可以正常工作。

server {
listen 80;
server_name 100.100.7.60;

location / {
    proxy_pass http://100.100.7.60:3000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}

}

但是当我将nginx端口80更改为8080或任何端口时。如果现在我正在尝试(100.100.7.60)。我无法运行node.js应用程序。现在,如果我想运行应用程序,我的网址应该是(100.100.7.60:8080)。

server {
listen 8080;
server_name 100.100.7.60;

location / {
    proxy_pass http://100.100.7.60:3000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}

}

任何人都可以解释我的问题是什么吗?我想更改端口号。但我不想在网址中添加(:8080)。我想在更改端口号后创建相同的URL

1 个答案:

答案 0 :(得分:0)

如果要侦听其他端口,则无法从URL中排除端口号。当您在浏览器中输入100.100.7.60时,协议为HTTP,默认情况下端口为80。

这有一个(非常糟糕的)解决方法:

server {
    listen 80;
    server_name 100.100.7.60;

    return 301 http://100.100.7.60:8080;
}

这会将端口80上的所有流量重定向到端口8080,这是(我假设)不是您想要的。

相反,您应该将DNS配置为使用子域(例如myapp.example.com)指向此服务器,然后使用该服务器名称侦听80端口以便为您的应用程序提供服务。