Flask專案nginx uwsgi部署伺服器

2021-10-25 19:09:05 字數 2522 閱讀 2661

uwsgi簡介:

說uwsgi之前,先說一下wsgi。

什麼是wsgi?

wsgi: 是一種web伺服器閘道器介面,它是乙個web伺服器(如nginx) 與應用伺服器(如uwsgi伺服器)通訊的一種規範。

uwsgi是乙個web伺服器,它實現了wsgi協議,uwsgi,http等協議,nginx中httpuwsgimodul的作用是與uwsgi伺服器進行交換

那麼那些框架自帶了wsgi server呢?

很多框架都自帶了wsgi server, 比如: flask、 webpy、 dajngo、 cherrypy等等。當然效能都不好,自帶的web server更多的是本地測試用途,發布時則使用生產環境的wsgi server或者是聯合nginx做uwsgi。

簡單的來講wsgi就是,標準,

比如: 乙個德國人跟乙個法國人聊天,他們要想聊天可以通過乙個標準的國際語言: 英語來進行互動。

要注意 wsgi/uwsgi/uwsgi 這三個概念的區分。

wsgi是一種通訊協議

uwsgi同wsgi一樣是一種通訊協議

而uwsgi是實現了uwsgi和wsgi兩種協議的web伺服器。

為什麼uwsgi還需要nginx,應為nginx具備了優秀的靜態內容處理能力,然後將動態內容**給uwsgi伺服器,這樣就實現了,動靜分離。 也可以更好的達到客戶端的效果。

安裝nginx,wsgi

將專案資料夾傳輸到伺服器(比如根目錄下的home資料夾下)

scp -r 本機下專案的路徑 root@***.

***.**

*.***

:/home/ 例:scp -r /home/guagua/test.py [email protected]

.33.44

:/home/

file

傳輸完成後在專案主目錄下配置uwsgi

建立uwsgi.ini

vim uwsgi.ini (vi uwsgi.ini)

#以下為新增操作

[uwsgi]

socket=

0.0.0.0:

5000

# 可配置成別的埠

chdir=專案的路徑

wsgi-

file

=啟動檔案的路徑

callable

processes=

4threads=

10master=true

#virstualenv = python虛擬環境路徑 (如果沒有配置虛擬環境,則不用)

daemonize=

/data/log/專案名/uwsgi.log #指定uwsgi日誌儲存位置,沒有這個資料夾的話先進行建立

buffer

-size=

32768

配置nginx(nginx的配置檔案預設為/etc/nginx/nginx.conf)

在http裡面新增內容:

server

}可能會遇到的問題,找不到一些檔案或路徑,哪個找不到直接建立就行

啟動 nginx

service nginx start

service nginx status # 檢視nginx狀態,是否啟動

service nginx restart # 重啟nginx

ps -ef |grep nginx # 檢視已啟動nginx的程序號

kill -

9 nginx主程序號

如果啟動失敗,檢視nginx的日誌找到報錯原因,日誌在/var/log/nginx/error.log

tail -f error.log #檢視nginx日誌

啟動uwsgi進入專案下(uwsgi.ini所在的資料夾下)

uwsgi -d -

-ini uwsgi.ini # 啟動

啟動成功:[uwsgi] getting ini configuration from uwsgi.ini

ps -ef |grep uwsgi 檢視當前當前開啟的uwsgi程序

關閉方法與nginx類似

啟動失敗可檢視uwsgi日誌,日誌位置在配置檔案中我們自己配置的路徑 tail -f uwsgi

都啟動成功,訪問

curl +ip  執行
如果遇到問題,先檢視nginx是否啟動成功,如果沒成功,檢視日誌 cd /var/log/nginx/error.log

當nginx成功以後再去排uwsgi的錯誤,看看是不是flask專案的python環境沒對應上,或者是缺少某些模組 檢視uwsgi日誌 找到日誌檔案的目錄 tail -f uwsgi.log

常用命令

ps -aux|grep python3          檢視當前python程序

kill -

9 程序號 關閉當前程序號

將Django專案部署到nginx uwsgi上

首先利用wsgi協議,將專案部署到uwsgi上 1.uwsgi的安裝 pip install uwsgi2.uwsgi的配置專案部署時,需要把settings.py資料夾下的 debug false allowed hosts 在專案目錄下新建uwsgi.ini檔案 uwsgi 使用nginx連線時...

Flask專案結構

專案排版 首先建立專案目錄 mkdir flask tutorial cd flask tutorial接下來按照前一篇講過的安裝flask步驟進行安裝,並新建乙個虛擬環境。flask應用可以簡單到使用乙個單檔案,例如hello.py from flask import flask defhello...

flask專案安裝

flask誕生於2010年,是armin ronacher 人名 用 python 語言基於 werkzeug 工具箱編寫的輕量級web開發框架。flask 本身相當於乙個核心,其他幾乎所有的功能都要用到擴充套件 郵件擴充套件flask mail,使用者認證flask login,資料庫flask ...