gpt4 book ai didi

linux - 无法提供端口 80 express.js 反向代理 nginx

转载 作者:太空宇宙 更新时间:2023-11-04 10:43:43 28 4
gpt4 key购买 nike

Ubuntu 14.04。尝试使用 nodejs/expressjs 在端口 80 上提供应用程序时,我失去了理智。起初我收到一个“Error: listen EACCESS”错误(程序退出)。这在我的本地机器上通过以 sudo 运行 Node 解决了。

然而,在我的 Linux 主机上,即使 sudo 也不会生效,我得到“listen EADDRINUSE”(程序退出)。这里用 nginx 反向代理 expressjs。

更高编号的端口没有任何问题(例如默认 3000)

Node 应用的精简版:

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 的情况下是这样,但在这种情况下这没有意义)。只需为 Node 选择不同的端口并相应地调整您的 nginx 配置。

关于linux - 无法提供端口 80 express.js 反向代理 nginx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33947574/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com