我一直在开发在龙卷风Web服务在过去的几个月里,在我的测试环境来运行我使用的服务:
python index.py
index.py是在端口8001。然后我用从Web服务请求听我的龙卷风应用程序处理http://localhost:8001
。 我现在我的部署测试环境登台环境应该反映生产。 我怎么去运行在生产龙卷风? 我猜我需要建立某种形式的守护程序的应用程序,但我不知道从哪里开始!
我一直在开发在龙卷风Web服务在过去的几个月里,在我的测试环境来运行我使用的服务:
python index.py
index.py是在端口8001。然后我用从Web服务请求听我的龙卷风应用程序处理http://localhost:8001
。 我现在我的部署测试环境登台环境应该反映生产。 我怎么去运行在生产龙卷风? 我猜我需要建立某种形式的守护程序的应用程序,但我不知道从哪里开始!
还有,你可以使用一些工具。
首先, Supervisord
Supervisord是一个“过程控制系统”,您配置流程,让监督员管理他们,如果他们失败,它会重新启动它们,使管理它们更容易,让他们在后台运行
下面是一个示例监事配置文件
[program:myprogram]
process_name=MYPROGRAM%(process_num)s
directory=/var/www/apps/myapp
command=/var/www/apps/myapp/virtualenv/bin/python index.py --PORT=%(process_num)s
startsecs=2
user=youruser
stdout_logfile=/var/log/myapp/out-%(process_num)s.log
stderr_logfile=/var/log/myapp/err-%(process_num)s.log
numprocs=4
numprocs_start=14000
与配置,监会启动4( numprocs
上的端口14001-14004(index.py)的情况下, numprocs_start
)。 我们通过--PORT=%(process_num)s
让每一个进程来启动不同的端口上。 你应该改变numprocs
和numprocs_start
以满足环境/设备。 一般我们运行2xCPU内核进程(所以四核处理器将有8个处理),但可以根据巨大什么你做的过程和多少阻挡存在在你的代码会有所不同。
接下来,配置NGINX以便将请求转发到您的网站
upstream myappbackend {
server 127.0.0.1:14001 max_fails=3 fail_timeout=1s;
server 127.0.0.1:14002 max_fails=3 fail_timeout=1s;
server 127.0.0.1:14003 max_fails=3 fail_timeout=1s;
server 127.0.0.1:14004 max_fails=3 fail_timeout=1s;
}
server {
listen 4.5.6.7:80;
server_name example.com;
access_log /var/log/nginx/myapp.log main;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-Ip $remote_addr;
proxy_pass http://myappbackend/;
}
}
这个配置应该修改取决于应用程序和它的工作方式,这是一个非常小的配置,并且将几乎肯定需要扩大上,但应该足以让你开始