nginx GCE Node.js无法在不同的端口中工作

7ajki6be  于 2023-01-08  发布在  Nginx
关注(0)|答案(1)|浏览(120)

我想将带有pm2和express的node.js应用程序部署到计算引擎示例中,它在端口8080中工作正常,但当我将端口更改为8081时,它向我返回"500内部服务器错误"。
我也有一个防火墙规则与该端口。
/etc/nginx/可用站点/默认值:

server {
    listen 8081;
    server_name **.***.***.***;

    location / {
        proxy_pass "http://127.0.0.1:8081";
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_cache_bypass $http_upgrade;
    }
}

server {
    listen 80;
    server_name **.***.***.***;
    root /var/www/html/;
}

在我的文件/home/myuser/. pm2/logs/index-error.log中说:"地址已被使用"
文件:/var/log/nginx/错误日志:

1260 768 worker_connections are not enough while connecting to upstream

我尝试了下一个命令:sudo网络统计-tulpn
使用此端口的唯一进程是我创建的防火墙规则

ijxebb2r

ijxebb2r1#

    • 尝试以下可能的解决方案:**

1)设置工作进程可以同时打开的最大连接数。有关详细信息,请参阅Worker_connections。另请检查full example configuration
连接的公式是worker_processes * worker_connections,应该是12 * 768,也就是(点击clack)9216。但是您的日志显示为1768 ...

events {
    worker_connections 10000;
}

在你的app. yml上试试这个:

    • 生成运行后要运行的任何自定义命令:**
  • exec:echo "自定义命令的开头"
  • 替换:

文件名:"/etc/nginx/nginx. conf "
来自:"工作者_连接768"
收件人:"工人连接2000"

  • 替换:

文件名:"/etc/nginx/nginx. conf "
来自:"自动工作进程"
至:"工作进程10"
请注意,您在post 2上的块作用于错误的文件!
另一种增加限制的方法是将worker_rlimit_nofile设置为10000,并且没有问题,您可以安全地增加它,尽管文件描述符用完的可能性极小。和worker_connections 4000组成;在/etc/nginx/nginx.conf
Note:CentOS/Fedora用户请注意,如果您启用了SELinux,则需要运行setsebool -P httpd_setrlimit 1,以便nginx具有设置其rlimit的权限。
2)检查是否需要使用主体解析器将数据转换为req.bodygithub.com/expressjs/body-parser
3)现在检查问题是linux内核限制,参见easyengine.io/tutorials/linux/increase-open-files-limit
有关详细信息,请参阅类似的SO

相关问题