uwsgi指定python路径_uWsgi服务器(2)--安装配置
uWsgi做為一款應用服務器,其安裝配置是非常簡單的。
一、安裝
- 虛擬環(huán)境安裝
- 源碼安裝
- 測試
創(chuàng)建一個wsgi應用:
#example.py def application(env, start_response):start_response('200 OK', [('Content-Type','text/html')])return [b"Hello World"]如您所見,它由單個Python函數(shù)組成。之所以稱為“應用程序”,是因為它可以uWSGI加載器加載。
接下來我們啟動 uWSGI 來運行一個 HTTP 服務器,將程序部署在HTTP端口 9000 上:
# 在虛擬環(huán)境中啟動uwsgi uwsgi --http 127.0.0.1:9000 --wsgi-file example.py打開瀏覽器,輸入:http://127.0.0.1:9000
圖1 hello world默認情況下,uWSGI 啟動一個單一的進程和一個單一的線程。
你可以用 --processes 選項添加更多的進程,或者使用 --threads 選項添加更多的線程 ,也可以兩者同時使用。
uwsgi --http 127.0.0.1:9090 --wsgi-file foobar.py --master --processes 4 --threads 2以上命令將會生成 4 個進程, 每個進程有 2 個線程。
二、配置
uWSGI支持多種與Web服務器集成的方法。它也能夠自己處理HTTP請求。但在實際的生產(chǎn)環(huán)境中,一般會配合nginx或apache使用,咱們以nginx為例,來看一下如何配置。
1. nginx的配置
通常,您只需要包含uwsgi_params文件(包含在nginx發(fā)行版中),并使用uwsgi_pass指令設置TCP套接字的地址即可
server {# 監(jiān)聽端口listen 80;# 可以是ip地址或域名server_name www.blog.com;# 動態(tài)請求nginx轉(zhuǎn)發(fā)給uwsgilocation / {# 轉(zhuǎn)發(fā)端口必須和uwsgi配置文件中socket端口一致uwsgi_pass 127.0.0.1:8000; include uwsgi_params; }# 靜態(tài)資源所在位置,nginx自己處理location /static {alias /var/www/online/static/;} }nginx安裝完畢后,自帶一個uwsgi_params文件:
圖2 nginx自帶uwsgi_params文件uwsgi_params文件內(nèi)容:
uwsgi_param QUERY_STRING $query_string; uwsgi_param REQUEST_METHOD $request_method; uwsgi_param CONTENT_TYPE $content_type; uwsgi_param CONTENT_LENGTH $content_length;uwsgi_param REQUEST_URI $request_uri; uwsgi_param PATH_INFO $document_uri; uwsgi_param DOCUMENT_ROOT $document_root; uwsgi_param SERVER_PROTOCOL $server_protocol; uwsgi_param REQUEST_SCHEME $scheme; uwsgi_param HTTPS $https if_not_empty;uwsgi_param REMOTE_ADDR $remote_addr; uwsgi_param REMOTE_PORT $remote_port; uwsgi_param SERVER_PORT $server_port; uwsgi_param SERVER_NAME $server_name;這個文件中包含了轉(zhuǎn)發(fā)請求時要攜帶的內(nèi)容:查詢字符串、請求方法、內(nèi)容類型等
修改了配置文件,記得重啟nginx服務。
2. uWsgi服務器配置
和nginx配合使用,uwsgi是socket套接字的方式啟動,而不是以http服務器啟動。啟動方式有兩種:命令行和配置文件。
- 命令行方式啟動
但這種方式寫起來復雜,易出錯,不能重用,所以一般使用這種方式,只是用于調(diào)試,一旦調(diào)試正確,我們就可以使用配置文件進行配置,命令行的每一個參數(shù)對應配置文件的一行。
- 配置文件
uwsgi支持以以下幾種文件方式加載配置:
uwsgi --ini http://uwsgi.it/configs/myapp.ini # HTTP uwsgi --xml - # standard input uwsgi --yaml fd://0 # file descriptor uwsgi --json 'exec://nc 192.168.11.2:33000' # arbitrary executabl3.INI文件
.INI文件是許多應用程序使用的標準事實上的配置格式。它由[section]s和key=value對組成。
[uwsgi] socket = 127.0.0.1:9000 wsgi-file = example.py master = true threads = 2[app1] .....默認情況下,uWSGI使用該[uwsgi]部分,但是您可以在使用語法加載INI文件時指定另一個部分名稱filename:section。
uwsgi --ini uconfig.ini:app1注意:
- 配置文件中空格無所謂,幾個都行
- 以分號或#號開頭的是注釋
- 啟動使用命令: uwsgi --ini uconfig.ini,等價于 uwsgi uconfig.ini
4.XML文件
根節(jié)點應為<uwsgi>和選項值文本節(jié)點。
<uwsgi><socket>127.0.0.1:9000</socket><master/><wsgi-file>example.py</wsgi-file><threads>3</threads> </uwsgi>一個xml文件中可以朵兒<uwsgi>節(jié)點,可以通過制定不同id屬性加以區(qū)分,要選用不同的節(jié),可以再文件名后加冒號再跟id屬性。加載xml配置文件:
# 兩種方式等價 uwsgi myconf.xml uwsgi --xml myconf.xml5.JSON文件
JSON文件應表示一個具有一對鍵值對的對象,鍵為“ uwsgi”,值為配置變量的對象。支持內(nèi)置JSON列表,布爾值和數(shù)字類型。
{"uwsgi": {"socket": ["127.0.0.1:8000"],"master": true,"workers": 3},"app1":{....} }加載方式:
uwsgi --json myconf.json:app1 # 根據(jù)節(jié)的名字加載6.常見參數(shù)
表1中列出了常用配置參數(shù)
表1 uwsgi常用配置參數(shù)uwsgi也可以加載很多插件,其中在python開發(fā)中,用得到是python插件,參數(shù):
下一節(jié)中,我們會說一下在Django和Flask項目中如何配置。
總結(jié)
以上是生活随笔為你收集整理的uwsgi指定python路径_uWsgi服务器(2)--安装配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 老戴尔电脑bios设置u盘启动不了怎么办
- 下一篇: python数据统计 矢量图_用pyth