写在前面
之前的文章中,我们详细讲述了怎样安装 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完
进入shell
/usr/lib/python3/bin/supervisorctl -c /usr/lib/supervisor/supervisord.conf
进入命令行
如出现错误提示需要排错后重启主进程
以上错误需要在提示位置新建文件
如果出现别的错误请查看主配置文件中的文件路径名字是否写错
重载
reload
输入 y 确认,为了保险更新一下
update
启动
restart NAME
随后测试是否正常访问即可。
祝你成功!