国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

基于Linux環(huán)境搭建Nginx+uWSGI+Python框架方法介紹

whataa / 598人閱讀

摘要:目前在和平臺(tái)下使用最廣泛的免費(fèi)服務(wù)器有和。涉及到普通用戶執(zhí)行命令時(shí)權(quán)限不足的問題,可在命令前增加指令解決。是基于二進(jìn)制的線路協(xié)議,與協(xié)議作用相同,但屬于服務(wù)器自有協(xié)議是服務(wù)器,它實(shí)現(xiàn)了協(xié)議等協(xié)議安裝。

前言

瀏覽器上網(wǎng)的過程簡單來說即是瀏覽器從服務(wù)器中獲取網(wǎng)站信息,經(jīng)過渲染后將效果呈現(xiàn)給用戶。這里側(cè)重介紹下在幕后默默工作著的服務(wù)器。
Web服務(wù)器是運(yùn)行在物理服務(wù)器上的一個(gè)程序,永久地等待客戶端(主要是瀏覽器,比如Chrome,F(xiàn)irefox等)發(fā)送請求。Web服務(wù)器通過HTTP協(xié)議與客戶端通信,當(dāng)收到請求之后,如果是靜態(tài)文件的話Web服務(wù)器可直接返回,如果不是靜態(tài)文件的話需要有一個(gè)Web應(yīng)用服務(wù)器根據(jù)不同的請求處理對應(yīng)的業(yè)務(wù)邏輯生成相應(yīng)的響應(yīng),如下圖所示。

目前在UNIX和LINUX平臺(tái)下使用最廣泛的免費(fèi)Web服務(wù)器有Apache和Nginx。Nginx是高效的Web服務(wù)器和反向代理服務(wù)器,可以用作負(fù)載均衡,與Apache相比,Nginx支持高并發(fā),可以支持百萬級(jí)的TCP連接,十萬級(jí)別的并發(fā)連接,部署簡單,內(nèi)存消耗少,成本低,雖然動(dòng)態(tài)請求處理沒有Apache豐富,但Nginx支持uWSGI的uwsgi協(xié)議,可將動(dòng)態(tài)請求傳遞至uWSGI處理。

這里選擇使用Nginx和uWSGI相結(jié)合的應(yīng)用,由于Nginx是反向代理服務(wù)器,因此需要網(wǎng)絡(luò)上的Web應(yīng)用服務(wù)器uWSGI負(fù)責(zé)具體的應(yīng)用邏輯處理,雖然uWSGI也可以作為Web服務(wù)器應(yīng)用在小規(guī)模網(wǎng)站,但配合Nginx使用可以更好的利用Nginx在緩存、并發(fā)處理,安全防護(hù),日志等方面的強(qiáng)大功能。

下面就來介紹下如何搭建Nginx+uWSGI環(huán)境來運(yùn)行Python應(yīng)用。


Nginx服務(wù)器部署

下載源碼庫。Nginx服務(wù)器的安裝依托于openssl、zlib、pcre庫的支持,在安裝Nginx之前需要對這三個(gè)庫進(jìn)行安裝,以下提供各個(gè)源碼庫的下載地址:
(1)openssl-fips-2.0.2.tar.gz(安全通訊庫)https://www.openssl.org/source/
(2)zlib-1.2.7.tar.gz(數(shù)據(jù)壓縮庫)http://www.zlib.net/
(3)pcre-8.21.tar.gz(正則表達(dá)式庫)http://www.pcre.org
(4)nginx-1.2.6.tar.gz http://nginx.org/en/download....

安裝源碼庫。在Shell終端界面中輸入Linux命令執(zhí)行安裝。涉及到普通用戶執(zhí)行root命令時(shí)權(quán)限不足的問題,可在命令前增加sudo指令解決。執(zhí)行安裝分為以下幾步:
(1)解壓文件。tar zxvf openssl-fips-2.0.2.tar.gz
(2)進(jìn)入至存儲(chǔ)的文件夾路徑。cd openssl-fips-2.0.2
(3)運(yùn)行shell配置腳本檢測運(yùn)行環(huán)境,生成makefile文件。./configure(Nginx的配置腳本需要結(jié)合依托庫運(yùn)行:./configure --with-pcre=../pcre-8.21 --with-zlib=../zlib-1.2.7 --with-openssl=../openssl-fips-2.0.2)

若運(yùn)行環(huán)境不滿足,如運(yùn)行pcre配置文件時(shí)提示“configure: error: You need a C++ compiler for C++ support”,即缺少C++編譯器,那么需要安裝C++編譯器“sudo apt-get install g++”

(4)編譯源碼庫:make
(5)安裝源碼庫:make instal

執(zhí)行測試命令:./nginx -t(在/usr/local/nginx/sbin路徑下執(zhí)行),出現(xiàn)如下提示表示已經(jīng)安裝成功

啟動(dòng)/停止服務(wù)器

(1)執(zhí)行啟動(dòng)命令:./nginx。啟動(dòng)后在瀏覽器輸入http://localhost:80監(jiān)聽本機(jī)80端口,出現(xiàn)如下圖所示內(nèi)容,表示已經(jīng)成功啟動(dòng)nginx服務(wù)器

(2)執(zhí)行查看端口命令:netstat -ntlp

(3)篩選出nginx進(jìn)程并打?。簆s -ef|grep nginx

(4)Kill進(jìn)程ID方式退出nginx進(jìn)程:kill -QUIT


uWSGI服務(wù)器部署

在介紹uWSGI服務(wù)器部署前,先梳理uwsgi、uWSGI、WSGI的區(qū)別:

WSGI(Web Server Gateway Interface)是為Python語言定義的Web服務(wù)器和Web應(yīng)用程序或框架之間的一種簡單而通用的接口協(xié)議,只要web服務(wù)器和 web應(yīng)用都遵守WSGI協(xié)議,那么兩者之間就可以任意組合。
uwsgi是基于二進(jìn)制的線路協(xié)議,與WSGI協(xié)議作用相同,但屬于uWSGI服務(wù)器自有協(xié)議
uWSGI是Web服務(wù)器,它實(shí)現(xiàn)了WSGI協(xié)議、uwsgi、http等協(xié)議

安裝uWSGI。此處通過pip安裝,也可以下載源碼進(jìn)行安裝。

pip install uwsgi

Python編寫應(yīng)用程序server.py,在網(wǎng)頁上顯示“Hello World”,代碼如下:

def application(environ, start_response):
??? status = "200 OK"
??? output = "Hello World!"

??? response_headers = [("Content-type", "text/plain"),
??????????????????????? ("Content-Length", str(len(output)))]
??? start_response(status, response_headers)
??? return [output]

啟動(dòng)uWSGI服務(wù)器??赏ㄟ^命令方式啟動(dòng)uWSGI,也可以將參數(shù)寫在配置文件中(inixmljsonyaml),指定配置文件來啟動(dòng)uWSGI(命令“uwsgi myapp.ini”)。

sudo uwsgi --http-socket :8001 --plugin python --wsgi-file server.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191
--http-socket參數(shù)指定了HTTP監(jiān)聽地址和端口,
--wsgi-file參數(shù)指定了WSGI應(yīng)用程序入口,uWSGI會(huì)自動(dòng)搜尋名為”application”的應(yīng)用對象并調(diào)用它。
--plugin python參數(shù)指定uWSGI?使用 python 插件去解析文件
--master 參數(shù)配置主進(jìn)程
--processes 參數(shù)配置多進(jìn)程
--threads參數(shù)配置多線程
--stats 參數(shù)配置在指定地址訪問狀態(tài)信息,如下圖在”127.0.0.1:9191″獲取JSON格式的運(yùn)行信息

配置文件內(nèi)容如下:
[uwsgi]
http-socket=:8001
plugins = python
wsgi-file=server.py
master=true
processes=4
threads=2
stats=127.0.0.1:9191

瀏覽器URL輸入”http://localhost:8001″,可以訪問到server.py執(zhí)行的結(jié)果”Hello World!”

更多關(guān)于uWSGI的介紹可參考官網(wǎng)文檔:http://uwsgi-docs.readthedocs...

Nginx+uWSGI反向代理

Ngx_http_uwsgi_module模塊起到Nginx服務(wù)器與uWSGI服務(wù)器交互作用,通過對uwsgi_pass設(shè)置服務(wù)器地址和協(xié)議,可將動(dòng)態(tài)內(nèi)容傳遞至uWSGI處理。

配置uWSGI。將uWSGI的HTTP端口監(jiān)聽改為socket端口監(jiān)聽,即配置文件中的“http-socket”項(xiàng)改為“socket”項(xiàng)。

[uwsgi]
socket=127.0.0.1:3031
plugins = python
wsgi-file=server.py
master=true
processes=4
threads=2
stats=127.0.0.1:9191

配置Nginx。打開Nginx的配置文件nginx.conf(Ubuntu上路徑“/usr/local/nginx/conf”),需要執(zhí)行“sudo chmod -R 777 nginx.conf”降低配置文件權(quán)限才可對服務(wù)器相關(guān)屬性進(jìn)行配置

配置代碼如下:
    server {? 
     ???listen?????? 80;? 
     ???server_name? localhost;? 
     ???location / {? 
    #root?? html;
    #index? index.html index.htm;
        include uwsgi_params;#加載uWSGI配置參數(shù)
        uwsgi_pass 127.0.0.1:3031;#請求轉(zhuǎn)發(fā)至”127.0.0.1:3031″端口上,即uWSGI服務(wù)器
     ????????? }? 
     ?? }? 

啟動(dòng)uWSGI服務(wù)器和nginx服務(wù)器,再次訪問”http://localhost:80”時(shí)會(huì)看到python應(yīng)用程序返回“Hello World!”,表示已經(jīng)完成nginx服務(wù)器對uWSGI服務(wù)器的反向代理功能。

 sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
 sudo service nginx restart$ uwsgi myapp.ini

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/39760.html

相關(guān)文章

  • 基于Linux環(huán)境搭建Nginx+uWSGI+Python框架方法介紹

    摘要:目前在和平臺(tái)下使用最廣泛的免費(fèi)服務(wù)器有和。涉及到普通用戶執(zhí)行命令時(shí)權(quán)限不足的問題,可在命令前增加指令解決。是基于二進(jìn)制的線路協(xié)議,與協(xié)議作用相同,但屬于服務(wù)器自有協(xié)議是服務(wù)器,它實(shí)現(xiàn)了協(xié)議等協(xié)議安裝。 前言 瀏覽器上網(wǎng)的過程簡單來說即是瀏覽器從服務(wù)器中獲取網(wǎng)站信息,經(jīng)過渲染后將效果呈現(xiàn)給用戶。這里側(cè)重介紹下在幕后默默工作著的服務(wù)器。Web服務(wù)器是運(yùn)行在物理服務(wù)器上的一個(gè)程序,永久地等待...

    spacewander 評(píng)論0 收藏0
  • CentOS 下用 Nginxuwsgi 部署 flask 項(xiàng)目

    摘要:服務(wù)器上部署項(xiàng)目說白了就是讓你的項(xiàng)目在這臺(tái)服務(wù)器上運(yùn)行并且做到可以在公網(wǎng)上訪問你的項(xiàng)目??梢越鉀Q項(xiàng)目與項(xiàng)目之間對同一個(gè)包的不同版本的依賴問題。有可能會(huì)報(bào)的錯(cuò)是項(xiàng)目相關(guān)模塊的引入路徑不對,修改一下便可。 前一陣自己用flask框架寫了一個(gè)博客程序,寫完之后想部署到服務(wù)器上,因?yàn)槭切“祝宰约篻oogle了好些資料,講的零零碎碎而且有些地方只是告訴你怎么配置,但具體為什么這樣配卻沒有說明...

    shuibo 評(píng)論0 收藏0
  • CentOS 下用 Nginxuwsgi 部署 flask 項(xiàng)目

    摘要:服務(wù)器上部署項(xiàng)目說白了就是讓你的項(xiàng)目在這臺(tái)服務(wù)器上運(yùn)行并且做到可以在公網(wǎng)上訪問你的項(xiàng)目。可以解決項(xiàng)目與項(xiàng)目之間對同一個(gè)包的不同版本的依賴問題。有可能會(huì)報(bào)的錯(cuò)是項(xiàng)目相關(guān)模塊的引入路徑不對,修改一下便可。 前一陣自己用flask框架寫了一個(gè)博客程序,寫完之后想部署到服務(wù)器上,因?yàn)槭切“?,所以自己google了好些資料,講的零零碎碎而且有些地方只是告訴你怎么配置,但具體為什么這樣配卻沒有說明...

    wanghui 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<