国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

在Linux系統上通過uWSGI配置Nginx+Python環境的教程

2020-01-04 17:53:22
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了在Linux系統上通過uWSGI配置Nginx+Python環境的教程,示例中為Ubuntu系統并且默認使用系統中自帶的Python解釋器,需要的朋友可以參考下
 

1.安裝ubuntu有uwsgi的ppa:

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

2. 用uwsgi代替mod_wsgi

Nginx 的整體配置這里不說了,假設已經明白 Nginx的基本配置,那么uwsgi就類似這么配置:

  location / {    include uwsgi_params    uwsgi_pass 127.0.0.1:9090   } 

再比如django就是:

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

然后運行uwsgi監聽9090,其中-w后跟模塊名,也就是剛才配置的myapp

 uwsgi -s :9090 -w myapp 

運行網站發現已經部署完成了。

3.uwsgi的參數

以上是單個project的最簡單化部署,uwsgi還是有很多令人稱贊的功能的,例如:

并發4個線程:

 uwsgi -s :9090 -w myapp -p 4 

主控制線程+4個線程:

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

執行超過30秒的client直接放棄:

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

限制內存空間128M:

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

服務超過10000個req自動respawn:

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

后臺運行等:

 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”:

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

然后必須配置virtualenv,virtualenv是Python的一個很有用的虛擬環境工具,這樣安裝:

 apt-get install Python-setuptools easy_install virtualenv 

然后設置一個/多個app基準環境:

 virtualenv /var/www/myenv 

應用環境,在此環境下安裝的軟件僅在此環境下有效:

 source /var/www/myenv/bin/activate  pip install django  pip install mako  ... 

最后配置nginx,注意每個站點必須單獨占用一個server,同一server不同location定向到不同的應用不知為何總是失敗,估計也 算是一個bug。

    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服務了。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 凌海市| 乌鲁木齐市| 阿拉善右旗| 平南县| 财经| 综艺| 五峰| 龙山县| 九龙城区| 曲麻莱县| 温宿县| 天祝| 新和县| 乐山市| 区。| 郓城县| 永城市| 博白县| 潞城市| 长顺县| 道孚县| 如皋市| 志丹县| 奉化市| 安仁县| 罗城| 泰来县| 青铜峡市| 专栏| 兴海县| 屏山县| 达尔| 和顺县| 包头市| 宜阳县| 山丹县| 北安市| 九龙城区| 柏乡县| 武陟县| 招远市|