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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

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

uWsgi做為一款應用服務器,其安裝配置是非常簡單的。

一、安裝

  • 虛擬環(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
  • 測試

創(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服務器啟動。啟動方式有兩種:命令行和配置文件。

  • 命令行方式啟動
uwsgi --socket 127.0.0.1:9000 --wsgi-file example.py --master --processes 4 --threads 2

但這種方式寫起來復雜,易出錯,不能重用,所以一般使用這種方式,只是用于調(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 executabl

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

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

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