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