使用supervisord nginx uwsgi falsk 构建python项目
示例使用:supervisord
nginx
uwsgi
falsk
构建
安装supervisor
apt-get install supervisor
supervisor默认会在supervisord.conf
中include 配置 ps:路径可能会在/etc/supervisord.d
files = supervisord.d/*.ini
在项目中添加app_uwsgi.ini
[uwsgi]
# uwsgi 启动时所使用的地址与端口
socket = 127.0.0.1:8001
# 指向网站目录
chdir = /www/name/
# python 启动程序文件
wsgi-file = api.py
# python 程序内用以启动的 application 变量名
callable = app
# 处理器数
processes = 4
# 线程数
threads = 2
#状态检测地址
stats = 127.0.0.1:9191
在supervisord.d中添加文件name.ini
[program:name]
# 启动命令入口
command=/www/name/venv/bin/uwsgi /www/name/app_uwsgi.ini
# 命令程序所在目录
directory=/www/name
#运行命令的用户名
user=root
autostart=true
autorestart=true
#日志地址
stdout_logfile=/www/name/logs/uwsgi_supervisor.log
配置nginx(转交给8001端口
,类似php-fpm) ps:此处配置了ssl证书
server {
listen 443;
server_name api.host.com;
charset utf-8;
client_max_body_size 75M;
ssl_certificate cert/1711700_api.host.com.pem;
ssl_certificate_key cert/1711700_api.host.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8001; # 指向uwsgi 所应用的内部地址,所有请求将转发给uwsgi 处理
uwsgi_param UWSGI_PYHOME /www/name/venv; # 指向虚拟环境目录
uwsgi_param UWSGI_CHDIR /www/name; # 指向网站根目录
uwsgi_param UWSGI_SCRIPT api:app; # 指定启动程序
}
}
启动supervisord
supervisorctl start all
# supervisorctl 工具
# supervisorctl help