日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

uwsgi指定python路径_uWsgi服务器(2)--安装配置

發(fā)布時(shí)間:2024/10/8 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 uwsgi指定python路径_uWsgi服务器(2)--安装配置 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

uWsgi做為一款應(yīng)用服務(wù)器,其安裝配置是非常簡(jiǎn)單的。

一、安裝

  • 虛擬環(huán)境安裝
pip install uwsgi
  • 源碼安裝
wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz tar zxvf uwsgi-latest.tar.gz cd uwsgi-latest make
  • 測(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)
uwsgi --socket 127.0.0.1:9000 --wsgi-file example.py --master --processes 4 --threads 2

但這種方式寫起來復(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 executabl

3.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.xml

5.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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。