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
随后测试是否正常访问即可。
祝你成功!