最近尝试已一些库和框架,将平常自己写的功能整合到一起。
整体结构如下图:
橙色框是主要配置点
uwsgi 服务器的配置大都熟悉,
daphne 和 uWSGI
- 安装 supervisor,
Centos
下直接yum install supervisor
- 其配置文件路径:
/etc/supervisord.conf
,可以查看详细的配置。一般在配置的最后一行有一个路径 指向我们的配置路径,类似于:files = supervisord.d/*.ini,那我们就可以进入到此路径内定义程序。 - 下面是示例:
1
2
3
4
5
6
7
8
9
10# last_site_websocket.ini [program:last_site_websocket] command=/usr/local/python3/bin/daphne -b 0.0.0.0 -p 9001 -u /tmp/daphne.sock backend_for_last_site.asgi:application directory=/www/wwwroot/api.freaks.group/global/backend_for_last_site/ stdout_logfile=/www/wwwroot/api.freaks.group/websocket_out.log stderr_logfile=/www/wwwroot/api.freaks.group/websocket_err.log autostart=true autorestart=true user=root startsecs=10
1
2
3
4
5
6
7
8
9
10# uwsgi.ini 文件命名尽量和 app一致 [program:uwsgi] command=uwsgi3 --ini /www/wwwroot/api.freaks.group/global/backend_for_last_site/uwsgi.ini directory=/www/wwwroot/api.freaks.group/global/backend_for_last_site stdout_logfile=/www/wwwroot/api.freaks.group/uwsgi_out.log stderr_logfile=/www/wwwroot/api.freaks.group/uwsgi_err.log autostart=true autorestart=true user=root startsecs=3
- 使用方式:
supervisorctl [stop/start/restart] program_name
celery 的部署
celery 部署采用的是 Generic init-scripts 方式 文档
但是服务器上是没有 celeryd 和 celerybeat 这两个脚本的,我们需要从这里
将这两文文件复制到 /etc/init.d/
路径下。然后再按照文档的说明进行配置就可以了。
但是最佳的方案是将配置文件和项目放在一块:在 celeryd 和 celerybeat 这两个脚本中,_config_sanity 函数负责解析配置文件,
可以修改配置的路径。
这两个脚本也没必要放置在 /etc/init.d/
路径下。
nginx
主要就是 websocket 的转发问题,这个和 uwsgi 相似,添加以下配置。
1 |
|