• 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

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

    祝你成功!

  • 相关阅读:
    haproxy+keepalived配置haproxy反向代理的高可用
    正则表达式
    logstash 中multiline插件的用法
    logtash 接收多配置文件
    Debian 8 升级到 9 Debian 9 How to upgrade Debian 8 Jessie to Debian 9 Stretch
    YOLO object detection with OpenCV
    快速 图片颜色转换迁移 Color Transfer Opencv + Python
    对抗网络GAN的应用实例
    nvflash 报错解决
    卷积神经网络(CNN)在语音识别中的应用
  • 原文地址:https://www.cnblogs.com/chnmig/p/10362947.html
Copyright © 2020-2023  润新知