在生产中使用nginx的反向代理设置龙卷风网络服务(Setting up a tornado web

2019-07-19 12:55发布

我一直在开发在龙卷风Web服务在过去的几个月里,在我的测试环境来运行我使用的服务:

python index.py

index.py是在端口8001。然后我用从Web服务请求听我的龙卷风应用程序处理http://localhost:8001 。 我现在我的部署测试环境登台环境应该反映生产。 我怎么去运行在生产龙卷风? 我猜我需要建立某种形式的守护程序的应用程序,但我不知道从哪里开始!

Answer 1:

还有,你可以使用一些工具。

首先, 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让每一个进程来启动不同的端口上。 你应该改变numprocsnumprocs_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/;
            }
    }      

这个配置应该修改取决于应用程序和它的工作方式,这是一个非常小的配置,并且将几乎肯定需要扩大上,但应该足以让你开始



文章来源: Setting up a tornado web service in production with nginx reverse proxy
标签: nginx tornado