1. <span id='e81r9'></span>
      <i id='e81r9'></i>

        <acronym id='e81r9'><em id='e81r9'></em><td id='e81r9'><div id='e81r9'></div></td></acronym><address id='e81r9'><big id='e81r9'><big id='e81r9'></big><legend id='e81r9'></legend></big></address><ins id='e81r9'></ins>
          <fieldset id='e81r9'></fieldset>

          <code id='e81r9'><strong id='e81r9'></strong></code>
            <i id='e81r9'><div id='e81r9'><ins id='e81r9'></ins></div></i>
            <dl id='e81r9'></dl>
          1. <tr id='e81r9'><strong id='e81r9'></strong><small id='e81r9'></small><button id='e81r9'></button><li id='e81r9'><noscript id='e81r9'><big id='e81r9'></big><dt id='e81r9'></dt></noscript></li></tr><ol id='e81r9'><table id='e81r9'><blockquote id='e81r9'><tbody id='e81r9'></tbody></blockquote></table></ol><u id='e81r9'></u><kbd id='e81r9'><kbd id='e81r9'></kbd></kbd>
          2. 在Linux系统上怎么通过uWSGI配置Nginx+Python环境

            • 时间:
            • 浏览:2
            • 来源:124软件资讯网

                1.安装ubuntu有uwsgi的ppa:

                ?

              1 2 3 add-apt-repository ppa:stevecrozz/ppa apt-get update apt-get install uwsgi

                2. 用uwsgi取代mod_wsgi

                Nginx 的整体设置这里不说了  ,假设已经明确 Nginx的基本设置  ,那么uwsgi就类似这么设置:

                ?

              1 2 3 4 location / { include uwsgi_params uwsgi_pass 127.0.0.1:9090 }

                再好比django就是:

                ?

              1 2 3 ....... from django.core.handlers.wsgi import WSGIHandler application = WSGIHandler()

                然后运行uwsgi监听9090  ,其中-w后跟模块名  ,也就是适才设置的myapp

                ?

              1 uwsgi -s :9090 -w myapp

                运行网站发现已经部署完成了  。

                3.uwsgi的参数

                以上是单个project的最简朴化部署  ,uwsgi照旧有许多令人歌颂的功效的  ,例如:

                并发4个线程

                ?

              1 uwsgi -s :9090 -w myapp -p 4

                主控制线程+4个线程:

                ?

              1 uwsgi -s :9090 -w myapp -M -p 4

                执行凌驾30秒的client直接放弃:

                ?

              1 uwsgi -s :9090 -w myapp -M -p 4 -t 30

                限制内存空间128M:

                ?

              1 uwsgi -s :9090 -w myapp -M -p 4 -t 30 --limit-as 128

                服务凌驾10000个req自动respawn:

                ?

              1 uwsgi -s :9090 -w myapp -M -p 4 -t 30 --limit-as 128 -R 10000

                后台运行等:

                ?

              1 uwsgi -s :9090 -w myapp -M -p 4 -t 30 --limit-as 128 -R 10000 -d uwsgi.log

                4.为uwsgi设置多个站点

                为了让多个站点共享一个uwsgi服务  ,必须把uwsgi运行成虚拟站点:去掉“-w myapp”加上”–vhost”:

                ?

              1 uwsgi -s :9090 -M -p 4 -t 30 --limit-as 128 -R 10000 -d uwsgi.log --vhost

                然后必须设置virtualenv ,virtualenv是Python的一个很有用的虚拟情况工具 ,这样安装:

                ?

              1 2 apt-get install Python-setuptools easy_install virtualenv

                然后设置一个/多个app基准情况:

                ?

              1 virtualenv /var/www/myenv

                应用情况  ,在此情况下安装的软件仅在此情况下有用:

                ?

              1 2 3 4 source /var/www/myenv/bin/activate pip install django pip install mako ...

                最后设置nginx  ,注重每个站点必须单独占用一个server  ,统一server差别location定向到差别的应用不知为何总是失败  ,预计也 算是一个bug 。

                ?

              1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 server { listen 80; server_name app1.mydomain.com; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:9090; uwsgi_param UWSGI_PYHOME /var/www/myenv; uwsgi_param UWSGI_SCRIPT myapp1; uwsgi_param UWSGI_CHDIR /var/www/myappdir1; } } server { listen 80; server_name app2.mydomain.com; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:9090; uwsgi_param UWSGI_PYHOME /var/www/myenv; uwsgi_param UWSGI_SCRIPT myapp2; uwsgi_param UWSGI_CHDIR /var/www/myappdir2; } }

                这样  ,重启nginx服务  ,两个站点就可以共用一个uwsgi服务了  。