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

时间:2024-06-14 22:06:26

写在前面

之前的文章中,我们详细讲述了怎样安装 Nginx,Python,Supervisor,Gunicorn,HTTPS。经本人多次测试是完全可以跑通的,那么本篇将介绍怎样将这些组合起来运行一个HTTPS的后端接口API

正文

注意

如果你想连接mysql,请先安装 mysqlclient

yum install mysql-devel
pip3 install mysqlclient

配置Nginx文件

我们之前配置过 HTTPS 的Nginx文件,由于接口就是这个HTTPS所以我们将其写在一起,打开之前的conf,编辑

server {
# 配置HTTPS
listen ssl; # .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. TLSv1.; #按照这个协议配置
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 16k;
gzip_comp_level ; # 压缩级别1-,越大压缩的越小
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 https://$server_name$request_uri;
}

配置supervisor文件

因为还需要搭配supervisor使用,所以我们还需要给supervisor加一个指向

我们进入配置文件夹新建一个配置,名字随便(记得是 .conf 文件)

[program:macalline]
directory=/root/lz/macalline
command=/usr/lib/python3/bin/gunicorn --workers -b 0.0.0.0: 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完

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

进入shell

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

进入命令行

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

如出现错误提示需要排错后重启主进程

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

以上错误需要在提示位置新建文件

如果出现别的错误请查看主配置文件中的文件路径名字是否写错

重载

reload

输入 y 确认,为了保险更新一下

update

启动

restart NAME

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

随后测试是否正常访问即可。

祝你成功!