Flask+Nginx+Supervisor+Gunicorn+HTTPS部署教程(CentOs)


寫在前面

之前的文章中,我們詳細講述了怎樣安裝 Nginx,Python,Supervisor,Gunicorn,HTTPS。經本人多次測試是完全可以跑通的,那么本篇將介紹怎樣將這些組合起來運行一個HTTPS的后端接口API

正文

注意

如果你想連接mysql,請先安裝 mysqlclient

yum install mysql-devel
pip3 install mysqlclient

配置Nginx文件

我們之前配置過 HTTPS 的Nginx文件,由於接口就是這個HTTPS所以我們將其寫在一起,打開之前的conf,編輯

server {
        # 配置HTTPS
        listen 443 ssl;  # 1.1版本后這樣寫
        server_name www.xxxx.cn; #填寫綁定證書的域名
        ssl_certificate /root/lz/macalline/1_www.xxxx.cn_bundle.crt;  # 指定證書的位置>,絕對路徑
        ssl_certificate_key /root/lz/macalline/2_www.xxxx.cn.key;  # 絕對路徑,同上
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照這個協議配置
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照這個套件>配置
        ssl_prefer_server_ciphers on;
     # 配置靜態資源
     location ^~ /media/ {
      root /data/www;
     } # 配置后端API location
/ { proxy_pass http://xxx.xxx.xxx.xxx:3000; # 綁定服務器指定的端口 } # 指定log access_log /root/lz/logs/nginx_macalline_access.log; # success_log error_log /root/lz/logs/nginx_macalline_error.log; # error_log # 開啟gzip gzip on; gzip_min_length 1k; # 最小壓縮范圍 gzip_buffers 4 16k; gzip_comp_level 5; # 壓縮級別1-9,越大壓縮的越小 gzip_types text/plain application/x-javascript text/css application/xml application/json text/javascript image/jpeg image/png; # 指定壓縮文件 gzip_disable "MSIE [1-6]\."; }
server {   listen
80;   server_name www.chnmig.cn;   return 301 https://$server_name$request_uri;
}

 

配置supervisor文件

因為還需要搭配supervisor使用,所以我們還需要給supervisor加一個指向

我們進入配置文件夾新建一個配置,名字隨便(記得是 .conf 文件)

[program:macalline]
directory=/root/lz/macalline
command=/usr/lib/python3/bin/gunicorn --workers 5 -b 0.0.0.0:3000 manager:app
autostart=true
autorestart=true
stdout_logfile=/root/lz/logs/supervisor_macalline_out.log
stderr_logfile=/root/lz/logs/supervisor_macalline_err.log

重啟 Nginx

寫入新配置后需要重啟 Nginx

/usr/lib/nginx/sbin/nginx -s reload

沒有提示錯誤代表成功,出現錯誤一般是配置文件有問題 

也可以嘗試

/usr/lib/nginx/sbin/nginx -c /usr/lib/nginx/conf/nginx.conf

 

重啟 supervisor

為了保險起見我們先kill掉主進程

ps -fe | grep supervisord

查詢到進程后kill掉相關進程

然后重啟進程

/usr/lib/python3/bin/supervisord -c /usr/lib/supervisor/supervisord.conf

如果出現以下錯誤檢查是否kill完

進入shell

/usr/lib/python3/bin/supervisorctl -c /usr/lib/supervisor/supervisord.conf

進入命令行

如出現錯誤提示需要排錯后重啟主進程

以上錯誤需要在提示位置新建文件

如果出現別的錯誤請查看主配置文件中的文件路徑名字是否寫錯

重載

reload

輸入 y 確認,為了保險更新一下

update

啟動

restart NAME

 

隨后測試是否正常訪問即可。

祝你成功!


免責聲明!

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



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