圖解CentOS7下nginx+uwsgi+flask 環境搭建
按很簡單,重點是配置。。。 。。。
一、安裝nginx
具體操作請參考本頭條號中《圖解在CentOS7配置nginx服務(支持多域名,禁IP直訪,防惡意解析)》一文
安裝完畢後能夠直接支持靜態網頁訪問,今天安裝的uwsgi和flask是提供基於python的 動態網頁實現。
二、安裝python3
CentOS7下默認使用的是python2,似乎現在用python3才是主流了,因此請安裝python3。
具體操作請參考本頭條號中《在終端命令行下為CentOS7安裝Python3(系統自帶的是Python2)》一文
安裝完畢後,2、3兩個版本並存,互不干擾。執行python3和pip3的時候使用的是版本3。
三、安裝uwsgi和flask
pip3 install flask
pip3 install uwsgi
兩條命令搞定
四、【重點】配置文件修改
1、定義一個uwsgi的ini文件,該文件負責定義出uwsgi對外工作端口,並指定Flask項目的程序代碼及app對象,
命令行啟動
uwsgi --ini /root/配置.ini
2、nginx配置中,定義一個服務,將yiuwsgi_pass 指向 uwsgi對外工作端口
具體配置參考
1、nginx中的配置 參考
server {
listen 80 ;
server_name 你的域名;
root /工作目錄;
include /etc/nginx/default.d/*.conf;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:5051;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
注意其中5051是指向uwsgi的端口,具體值由uwsgi配置文件內設置。兩處配置中端口需要一致。
2、uwsgi配置文件參考
[uwsgi]
#uwsgi的客戶端將要連接的socket
socket = 127.0.0.1:5051
#載入文件
wsgi-file = /root/1111.py
callable = app
#為預先派生模式設置工作進程的數量
processes = 4
threads = 2
daemonize = /root/server.log
其中socket定義了uwsgi的對外端口,nginx通過該端口與之通訊。
五、測試實錄
準備一段測試代碼
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "這是一個Flask程序!"
if __name__ == "__main__":
app.run()
將代碼放在/root目錄下備用
同時在/root目錄下創建uwsgi配置文件 demo1.ini
[uwsgi]
#uwsgi的客戶端將要連接的socket
socket = 127.0.0.1:5051
#載入文件
wsgi-file = /root/1111.py
callable = app
#為預先派生模式設置工作進程的數量
processes = 4
threads = 2
daemonize = /root/server.log
最後修改nginx的配置文件,文件為 /etc/nginx/nginx.conf
server {
listen 80 ;
server_name www.pianyixing.com;
root /root;
include /etc/nginx/default.d/*.conf;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:5051;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
實際運行效果
更多的配置細節,建議您參考專門的書籍。
敬請繼續關注“有隻狗狗叫多多”,不要錯過哦!感謝您收藏、轉發。
閱讀更多 有隻狗狗叫多多 的文章