supervisord + uwsgi / nginx

supervisor配置

  • 安装supervisor
pip install supervisor
  • 生成配置文件
echo_supervisord_conf > /etc/supervisord.conf
  • 修改配置文件
vim /etc/supervisord.conf
;[include]
;files = relative/directory/*.ini
#改为
[include]
files = /etc/supervisor/*.conf

include可以理解为包含,它的意思是将**/etc/supervisor/目录下的,所有以.conf结尾的文件包含进来,/etc/下的supervisor/文件夹默认是不存在的,我们需要手动创建**:

  • 常用命令
#以配置文件启动supervisord
supervisord -c /etc/supervisord.conf

#查看所有进程的运行状态
supervisorctl status

#查看某一进程的运行状态
supervisorctl status 进程名

#启动某一进程
supervisorctl start 进程名

#启动所有进程
supervisorctl start all

#停止某一进程
supervisorctl stop 进程名

#停止所有进程
supervisorctl stop all

#重启某一进程
supervisorctl restart 进程名

#重启所有进程
supervisorctl restart all

#新增进程后,更新进程(不影响其他进程运行)
supervisorctl update

#新增进程后,重启所有进程
supervisorctl reload

supervisord + uwsgi

  • 安装uwsgi
pip install uwsgi
  • flask
if __name__ == '__main__':
    host = '0.0.0.0'
    port = 18080
    debug = False
    app.run(host, port, debug)
  • uwsgi.ini
[uwsgi]
#uwsgi启动时,所使用的地址和端口(这个是http协议的)
http = 0.0.0.0:18080
#指向网站目录
chdir=/home/user/serve
#python 启动程序文件
wsgi-file=/home/user/serve/app.py
master=true
#python 程序内用以启动的application 变量名
callable=app
#处理器数
processes=15
#线程数
threads=2
# 指定依赖的虚拟环境
virtualenv = /home/envs/torch
  • serve.conf(supervisord)
[program:serve]
user=root
directory=/home/user/serve
command=/home/envs/torch/bin/uwsgi --ini uwsgi.ini
autostart=true
autorestart=true
startsecs=3
stdout_logfile=/home/user/serve/logs/stdout.log
redirect_stderr=true
stderr_capture_maxbytes=1MB
stopasgroup=true
killasgroup=true

supervisord + nginx

nginx基本应用

  • flask
if __name__ == '__main__':
    host = '0.0.0.0'
    port = int(sys.argv[1])
    debug = False
    app.run(host, port, debug)
  • serve.conf(supervisord)
[program:serve]
directory=/home/user/serve
command=/home/envs/torch/bin/python app.py 1666%(process_num)d
autostart=true
autorestart=true
numprocs=4
process_name=%(program_name)s_%(process_num)02d
user=root
startsecs=3
priority=5
stdout_logfile=/home/user/serve/logs/%(program_name)s_%(process_num)02d.stdout.log
stderr_logfile=/home/user/serve/logs/%(program_name)s_%(process_num)02d.stderr.log
stderr_capture_maxbytes=1MB

总结

  • nginx的作用:
    1.反向代理,可以拦截一些web攻击,保护后端的web服务器
    2.负载均衡,根据轮询算法,分配请求到多节点web服务器
    3.缓存静态资源,加快访问速度,释放web服务器的内存占用,专项专用

  • uWSGI的适用:
    1.单节点服务器的简易部署
    2.轻量级,好部署

参考文献

  • https://blog.csdn.net/gaifuxi9518/article/details/89952899
  • https://www.jianshu.com/p/36187963b553
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值