【问题标题】:nginx+uwsgi configuration to handle heavy trafficnginx+uwsgi 配置处理大流量
【发布时间】:2018-07-27 23:01:07
【问题描述】:

我正在尝试在 nginx+uWSGI 服务器上托管我的 django 应用程序。这是我的 nginx 配置

user www-data;
worker_processes 6;
pid /run/nginx.pid;

events {

            worker_connections 1024;
            multi_accept on;
    }

    http {

            sendfile on;
            tcp_nopush on;
            tcp_nodelay on;
            keepalive_timeout 65;
            types_hash_max_size 2048;

            include /etc/nginx/mime.types;
            default_type application/octet-stream;

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

            gzip on;
            gzip_disable "msie6";

            include /etc/nginx/conf.d/*.conf;
            include /etc/nginx/sites-enabled/*;
    }

我使用 uWSGI 作为中间件。这是启动服务器的uWSGI命令

        uwsgi --chdir=/path/to/your/project \
        --module=mysite.wsgi:application \
        --env DJANGO_SETTINGS_MODULE=mysite.settings \
        --master --pidfile=/tmp/project-master.pid \
        --socket=127.0.0.1:49152 \      
        --processes=5 \                 
        --uid=1000 --gid=2000 \        
        --harakiri=20 \                 
        --max-requests=5000 \          
        --vacuum \                      
        --home=/path/to/virtual/env \   
        --daemonize=/var/log/uwsgi/yourproject.log     

我有几个与此相关的问题。

  1. 我应该如何定义 uWSGI 配置的进程值?

  2. 重新生成特定进程的主要目的是什么?

  3. --vacuum 如何帮助加速服务器?

  4. 如前所述,我预计此服务器上的流量会很大,因此是否需要任何其他自定义?

【问题讨论】:

    标签: performance nginx uwsgi


    【解决方案1】:
    1. 正如您在docs 中看到的那样,

    您需要尝试各种设置,并准备好持续监控您的应用。 uwsgitop 可能是找到最佳值的好工具。

    1. 见 1。
    2. Vacuum 不会加速您的服务器,它只是在退出时清理环境(例如,如果您将使用 unix 套接字而不是 http,则清理它是一种好习惯)
    3. 第一个答案中的链接 - 首先是“必须拥有”,对于其他建议,我们需要更多信息。

    【讨论】:

      猜你喜欢
      • 2014-05-29
      • 2012-08-04
      • 2012-03-31
      • 2020-03-04
      • 1970-01-01
      • 1970-01-01
      • 2020-01-23
      • 2016-10-13
      • 2011-06-26
      相关资源
      最近更新 更多