繁体   English   中英

无法提供端口80 express.js反向代理Nginx

[英]can't serve port 80 express.js reverse proxy nginx

Ubuntu 14.04。 失去了尝试使用nodejs / expressjs在端口80上提供应用程序的想法。 起初,我收到一个“错误:监听EACCESS”错误(程序退出)。 通过在本地计算机上将节点运行为sudo可以解决此问题。

但是,在我的Linux主机上,即使sudo也不会占上风,并且我会“监听EADDRINUSE”(程序退出)。 在这里,expressjs被nginx反向代理。

编号较大的端口没有任何问题(例如默认值3000)

节点应用程序的简化版:

var express = require('express');
var app = express();

var myPort = 80;

app.listen(port, function() {
    console.log("listening on " + parseInt(myPort) + "...");
});

NGINX配置

server {
    listen 80;
    listen [::]:80;

    server_name devjustice.com www.devjustice.com;
    location / {
            proxy_pass http://127.0.0.1:80;
            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;
            try_files $uri $uri/ =404;
}

我一生都无法想到这个地址已经占用了什么? nginx正在提供其他配置文件,但没有任何东西(看起来好像?)触及回送地址或使用相同的域名。 谢谢你的帮助。 在其他SO帖子上也谈到了类似的问题,但我找不到解决方案。

您有两个进程试图在同一个端口上侦听,这将无法正常工作(至少不使用SO_REUSEPORT ,但这在这种情况下是没有意义的)。 只需为节点选择其他端口并相应地调整您的nginx配置即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM