uwsgi指定python路径_uWsgi服务器(2)--安装配置
uWsgi做為一款應(yīng)用服務(wù)器,其安裝配置是非常簡(jiǎn)單的。
一、安裝
- 虛擬環(huán)境安裝
- 源碼安裝
- 測(cè)試
創(chuàng)建一個(gè)wsgi應(yīng)用:
#example.py def application(env, start_response):start_response('200 OK', [('Content-Type','text/html')])return [b"Hello World"]如您所見,它由單個(gè)Python函數(shù)組成。之所以稱為“應(yīng)用程序”,是因?yàn)樗梢評(píng)WSGI加載器加載。
接下來我們啟動(dòng) uWSGI 來運(yùn)行一個(gè) HTTP 服務(wù)器,將程序部署在HTTP端口 9000 上:
# 在虛擬環(huán)境中啟動(dòng)uwsgi uwsgi --http 127.0.0.1:9000 --wsgi-file example.py打開瀏覽器,輸入:http://127.0.0.1:9000
圖1 hello world默認(rèn)情況下,uWSGI 啟動(dòng)一個(gè)單一的進(jìn)程和一個(gè)單一的線程。
你可以用 --processes 選項(xiàng)添加更多的進(jìn)程,或者使用 --threads 選項(xiàng)添加更多的線程 ,也可以兩者同時(shí)使用。
uwsgi --http 127.0.0.1:9090 --wsgi-file foobar.py --master --processes 4 --threads 2以上命令將會(huì)生成 4 個(gè)進(jìn)程, 每個(gè)進(jìn)程有 2 個(gè)線程。
二、配置
uWSGI支持多種與Web服務(wù)器集成的方法。它也能夠自己處理HTTP請(qǐng)求。但在實(shí)際的生產(chǎn)環(huán)境中,一般會(huì)配合nginx或apache使用,咱們以nginx為例,來看一下如何配置。
1. nginx的配置
通常,您只需要包含uwsgi_params文件(包含在nginx發(fā)行版中),并使用uwsgi_pass指令設(shè)置TCP套接字的地址即可
server {# 監(jiān)聽端口listen 80;# 可以是ip地址或域名server_name www.blog.com;# 動(dòng)態(tài)請(qǐng)求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安裝完畢后,自帶一個(gè)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;這個(gè)文件中包含了轉(zhuǎn)發(fā)請(qǐng)求時(shí)要攜帶的內(nèi)容:查詢字符串、請(qǐng)求方法、內(nèi)容類型等
修改了配置文件,記得重啟nginx服務(wù)。
2. uWsgi服務(wù)器配置
和nginx配合使用,uwsgi是socket套接字的方式啟動(dòng),而不是以http服務(wù)器啟動(dòng)。啟動(dòng)方式有兩種:命令行和配置文件。
- 命令行方式啟動(dòng)
但這種方式寫起來復(fù)雜,易出錯(cuò),不能重用,所以一般使用這種方式,只是用于調(diào)試,一旦調(diào)試正確,我們就可以使用配置文件進(jìn)行配置,命令行的每一個(gè)參數(shù)對(duì)應(yīng)配置文件的一行。
- 配置文件
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文件是許多應(yīng)用程序使用的標(biāo)準(zhǔn)事實(shí)上的配置格式。它由[section]s和key=value對(duì)組成。
[uwsgi] socket = 127.0.0.1:9000 wsgi-file = example.py master = true threads = 2[app1] .....默認(rèn)情況下,uWSGI使用該[uwsgi]部分,但是您可以在使用語法加載INI文件時(shí)指定另一個(gè)部分名稱filename:section。
uwsgi --ini uconfig.ini:app1注意:
- 配置文件中空格無所謂,幾個(gè)都行
- 以分號(hào)或#號(hào)開頭的是注釋
- 啟動(dòng)使用命令: uwsgi --ini uconfig.ini,等價(jià)于 uwsgi uconfig.ini
4.XML文件
根節(jié)點(diǎn)應(yīng)為<uwsgi>和選項(xiàng)值文本節(jié)點(diǎn)。
<uwsgi><socket>127.0.0.1:9000</socket><master/><wsgi-file>example.py</wsgi-file><threads>3</threads> </uwsgi>一個(gè)xml文件中可以朵兒<uwsgi>節(jié)點(diǎn),可以通過制定不同id屬性加以區(qū)分,要選用不同的節(jié),可以再文件名后加冒號(hào)再跟id屬性。加載xml配置文件:
# 兩種方式等價(jià) uwsgi myconf.xml uwsgi --xml myconf.xml5.JSON文件
JSON文件應(yīng)表示一個(gè)具有一對(duì)鍵值對(duì)的對(duì)象,鍵為“ uwsgi”,值為配置變量的對(duì)象。支持內(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é)中,我們會(huì)說一下在Django和Flask項(xiàng)目中如何配置。
總結(jié)
以上是生活随笔為你收集整理的uwsgi指定python路径_uWsgi服务器(2)--安装配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 老戴尔电脑bios设置u盘启动不了怎么办
- 下一篇: python数据统计 矢量图_用pyth