我想将带有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
使用此端口的唯一进程是我创建的防火墙规则
1条答案
按热度按时间ijxebb2r1#
1)设置工作进程可以同时打开的最大连接数。有关详细信息,请参阅Worker_connections。另请检查full example configuration。
连接的公式是worker_processes * worker_connections,应该是12 * 768,也就是(点击clack)9216。但是您的日志显示为1768 ...
在你的app. yml上试试这个:
文件名:"/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.body
github.com/expressjs/body-parser3)现在检查问题是linux内核限制,参见easyengine.io/tutorials/linux/increase-open-files-limit
有关详细信息,请参阅类似的SO。