nginx是否必须侦听端口80?

nginx是否必须侦听端口80?,nginx,Nginx,我有一个使用websockets的节点应用程序,它在本地主机上工作,但不在生产中。在生产环境中,正在发布的消息不会出现在客户端中。因为它使用的是socket.io,所以我假设这是端口的问题。在生产中,我将nginx与此一起用作以下配置。Nginx正在侦听端口80,但我在本地主机上有应用程序的端口:3000。我见过的每一个nginx配置都在端口80上监听,我听说如果我将localhost设置为1000以下,就会出现问题,但我认为socket.io不起作用,因为这些端口不一样。你能建议如何解决这个问

我有一个使用websockets的节点应用程序,它在本地主机上工作,但不在生产中。在生产环境中,正在发布的消息不会出现在客户端中。因为它使用的是socket.io,所以我假设这是端口的问题。在生产中,我将nginx与此一起用作以下配置。Nginx正在侦听端口80,但我在本地主机上有应用程序的端口:3000。我见过的每一个nginx配置都在端口80上监听,我听说如果我将localhost设置为1000以下,就会出现问题,但我认为socket.io不起作用,因为这些端口不一样。你能建议如何解决这个问题吗

/etc/nginx/conf.d/example.com.conf

server {
    listen 80;

    server_name mydomain.com;

    location / {
        proxy_pass http://localhost: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;
    }
}

配置似乎很好,请检查错误日志和/或浏览器控制台是否存在任何错误errors@MohammadAbuShady因此,如果localhost设置为3000,您可以确认nginx在这种情况下不必监听3000?您的配置没有监听
3000
,而是监听80并代理
3000
,我想说,它的唯一目的是通过调用
example.com
而不是
example.com:3000
来使用
3000
上运行的任何服务