<span id='3ul38'></span>

<acronym id='3ul38'><em id='3ul38'></em><td id='3ul38'><div id='3ul38'></div></td></acronym><address id='3ul38'><big id='3ul38'><big id='3ul38'></big><legend id='3ul38'></legend></big></address>
  • <tr id='3ul38'><strong id='3ul38'></strong><small id='3ul38'></small><button id='3ul38'></button><li id='3ul38'><noscript id='3ul38'><big id='3ul38'></big><dt id='3ul38'></dt></noscript></li></tr><ol id='3ul38'><table id='3ul38'><blockquote id='3ul38'><tbody id='3ul38'></tbody></blockquote></table></ol><u id='3ul38'></u><kbd id='3ul38'><kbd id='3ul38'></kbd></kbd>
  • <i id='3ul38'></i>
    <dl id='3ul38'></dl>

    <code id='3ul38'><strong id='3ul38'></strong></code>

      1. <ins id='3ul38'></ins>

          <fieldset id='3ul38'></fieldset>
            <i id='3ul38'><div id='3ul38'><ins id='3ul38'></ins></div></i>
          1. 在Linux系统上怎么通过uWSGI配置Nginx+Python环境

            • 时间:
            • 浏览:12
            • 来源: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服务了  。