Nginx错误"1024个worker_connections不够". [英] Nginx error "1024 worker_connections are not enough"

查看:1664
本文介绍了Nginx错误"1024个worker_connections不够".的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的网站正在使用带有反向代理的Nginx在Docker映像中运行. 站点在繁忙的流量下可以正常工作多个小时,但最终它会停止工作,并且没有任何响应,并显示5 **超时错误. 在AWS Elastic Beanstalks Nginx日志中,我发现了此错误消息:

My website is running in a Docker Image using Nginx with reverse proxy. Site is working prefectly for many hours under heavy traffic, but eventually it stops working and giving no response with 5** time out error. In AWS Elastic Beanstalks Nginx-log I found this error-message:

[警告] 18037#0:1024个worker_connections不够

[alert] 18037#0: 1024 worker_connections are not enough

恐怕我的自定义Nginx配置有问题, 但是我不明白那是什么. 随附来自https-redirect-docker-sc.config的代码.

I am afraid something is wrong with my custom Nginx-config, but I do not understand what it is. Code from https-redirect-docker-sc.config is attached.

我试图调试代码以查找任何内存泄漏或循环,但找不到任何解决方案.

I have tried to debug code to find any memory leaks or loops, but I can not find any solution.

   files:
   "/etc/nginx/sites-available/elasticbeanstalk-nginx-docker-proxy.conf":
   owner: root
   group: root
   mode: "000755"
   content: |
   map $http_upgrade $connection_upgrade {
          default        "upgrade";
          ""            "";
   }

   server {
       listen 80;
       server_name mydomain.no;

       return 301 https://www.mydomain.no$request_uri;
   }   

   server {
       listen 80 default_server;

       gzip on;
       gzip_comp_level 4;
       gzip_types text/html text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

       if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2})") {
           set $year $1;
           set $month $2;
           set $day $3;
           set $hour $4;
       }
       access_log /var/log/nginx/healthd/application.log.$year-$month-$day-$hour healthd;

       access_log    /var/log/nginx/access.log;

       location / {
           set $redirect 0;
           if ($http_x_forwarded_proto != "https") {
             set $redirect 1;
           }
           if ($http_user_agent ~* "ELB-HealthChecker") {
             set $redirect 0;
           }
           if ($redirect = 1) {
             return 301 https://$host$request_uri;
           }

           proxy_pass            http://docker;
           proxy_http_version    1.1;

           proxy_set_header    Connection            $connection_upgrade;
           proxy_set_header    Upgrade                $http_upgrade;
           proxy_set_header    Host                $host;
           proxy_set_header    X-Real-IP            $remote_addr;
           proxy_set_header    X-Forwarded-For        $proxy_add_x_forwarded_for;
       }
   }

推荐答案

Nginx worker_connections的默认值为1024,这对于您来说还不够.

Default value for Nginx worker_connections is 1024, which is not enough for you.

在nginx.conf中的http前面添加事件块,因此看起来像这样:

Add events block before http in your nginx.conf, so it looks like this:

events {
  worker_connections  4096;  ## Default: 1024
}

http {
  include    conf/mime.types;
  .....
}

您还可以增加worker_processes的数量(默认= 1),因此服务器可以处理的连接总数为worker_processes * worker_connections

You can also increase number of worker_processes(default = 1), so the total amount of connections your server can handle would be worker_processes * worker_connections

请在此处检查完整的示例配置

这篇关于Nginx错误"1024个worker_connections不够".的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆