nginx+uwsgi+flask 配置 HTTPS


話接上文,https://www.cnblogs.com/CooperXia-847550730/p/11526734.html文里寫了一個隨機圖片API只用了flask部署,非常不穩定,

幾個小時就dead了,所以打算部署在nginx服務器上。

先把接口給了:https://116.62.5.101,http://116.62.5.101,一個是https,一個是http。端口是443和80,可缺省。

首先介紹一下:

nginx 是一個web服務器,用來接收請求,建立連接,轉發到后台等

uwsgi其實也是一個web服務器,但是還是沒有nginx穩定,處理迸發也不如nginx,這里用uwsgi只是為了讓nginx實現反向代理,flask是沒辦法直接被nginx反向代理的。

flask就是一個web框架,實現網站功能

 

ok,接下來開始部署,首先安裝nginx和uwsgi

yum install nginx

pip3 install uwsgi

就可以了

uwsgi的食用方法:

uwsgi --socket 0.0.0.0:5000 --protocol=http -p 3 -w run:app

這樣可以直接啟動,

--socket 0.0.0.0:5000:指定暴露端口號為5000。

--protocol=http:說明使用 http 協議,即端口5000可以直接使用HTTP請求進行訪問。

-p 3表示啟動的服務占用3個進程。

-w run:app:-w 指明了要啟動的模塊,run 就是項目啟動文件 run.py 去掉擴展名,app 是 run.py 文件中的變量 app,即 Flask 實例。

 

然后介紹配置文件啟動的方法:

在項目目錄下新建uwsgi.ini文件,

內容:

[uwsgi]
module = sprocess:app
master = true
processes = 3
chdir = ./
socket = ./project.sock
socket = 127.0.0.1:4000
logto = ./project.log
chmod-socket = 660
vacuum = true

下次啟動直接:

nohup uwsgi --ini uwsgi.ini > uwsgi.txt 2>&1 &

(nohup是后台啟動命令,可以直接yum安裝)

 

接下來配置nginx服務器,

vim /etc/nginx/nginx.conf,

內容:

worker_processes 4;
events { worker_connections 1024; }
http {
include mime.types;
default_type application/octet-stream;

server{
listen 80;
listen 443 ssl;
ssl_certificate /root/nginxproject/server.crt;
ssl_certificate_key /root/nginxproject/server.key;

location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:4000;
}

}
}

其中涉及的crt和key證書 需要用openssl生成,上篇文章已經說了,

如果不需要https去掉這三行就行

listen 443 ssl;
ssl_certificate /root/nginxproject/server.crt;
ssl_certificate_key /root/nginxproject/server.key;

 

 

現在就可以訪問了!但是博主犯了一個錯誤,而且很多次,就是每次都忘記去aliyun里打開相應的端口!!!!!!

我死了! 花了一個多小時,以為是證書或者配置的問題,被自己蠢哭

 

服務器重新搞了一下,然后配置了一個小時都沒搞出來,因為當時的記憶都忘記了。

現在記一下。python 文件是不用運行的,直接運行uwsgi,module = process:app

process是python文件的名字,app是python文件里的flask應用。文件中run().不需要配置IP端口

配置文件啟動uwsigi時,uwsgi.ini中在socket里要配置IP和端口,不需要配置http,因為后續以nginx作為服務器。如果uwsgi做服務器,需要配置http

並且在Nginx的conf文件里要對應上響應的uwsgi的端口,反向代理。

 哦對了,地址不要配127.0.0.1 配0.0.0.0

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM