首页 > 技术文章 > Flask+Nginx+Supervisor+Gunicorn+HTTPS部署教程(CentOs)

chnmig 2019-02-11 19:28 原文

写在前面

之前的文章中,我们详细讲述了怎样安装 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

 

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

祝你成功!

推荐阅读