nginx + uwsgi配置来处理繁重的流量

时间:2016-04-13 10:06:20

标签: performance nginx uwsgi

我正在尝试在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. 如前所述,我预计此服务器上的流量会很大,那么是否需要进行其他自定义?

1 个答案:

答案 0 :(得分:0)

  1. 您可以阅读docs
  2.   

    您需要尝试各种设置,并准备好不断监控您的应用。 uwsgitop可以成为找到最佳价值的好工具。

    1. 见1.
    2. 真空不会加速你的服务器,它只是在退出时清理环境(例如,如果你将使用unix套接字而不是http,那么清理它是个好习惯)
    3. 第一个回答中的链接 - 首先是'必须',对于其他推荐,我们需要更多信息。