如何在多个端口中启动多个Tornado Server实例

时间:2009-09-19 00:33:50

标签: multiple-instances tornado

我需要在以下端口启动博客演示:

127.0.0.1:8000 127.0.0.1:8001 127.0.0.1:8002 127.0.0.1:8003

当我使用:

运行应用程序时

./演示/博客/ blog.py

它从端口8888开始,定义如下:

define(“port”,默认= 8888,help =“在给定端口上运行”,type = int)

如何在多个端口中运行多个实例?

5 个答案:

答案 0 :(得分:4)

我找到了我要找的东西:

./demos/blog/blog.py --port=8889

答案 1 :(得分:3)

请确保您知道, - port选项会被Tornado框架的options模块解析。

看起来像这样的行:

define("port", default=8888, help="Port to listen on", type=int)

后来调用了自动解析命令行变量的options模块。

我只是给你这个,因为你可能想稍后在程序中指定不同的变量,你可能想要将实例更改为实例。

答案 2 :(得分:2)

使用supervisord启动多个实例。由于每个应用都采用--port=参数,您可以设置类似的内容:

以下是我用于Around The World

的设置
[group:aroundtheworld]
programs=aroundtheworld-10001,aroundtheworld-10002,aroundtheworld-10003

[program:aroundtheworld-10001]
command=/var/lib/tornado/aroundtheworld/app.py --port=10001
directory=/var/lib/tornado/aroundtheworld/
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/tornado/aroundtheworld-10001.log
stdout_logfile_maxbytes=500MB
stdout_logfile_backups=50
stdout_capture_maxbytes=1MB
stdout_events_enabled=false
loglevel=warn

[program:aroundtheworld-10002]
command=/var/lib/tornado/aroundtheworld/app.py --port=10002
directory=/var/lib/tornado/aroundtheworld/
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/tornado/aroundtheworld-10002.log
stdout_logfile_maxbytes=500MB
stdout_logfile_backups=50
stdout_capture_maxbytes=1MB
stdout_events_enabled=false
loglevel=warn

[program:aroundtheworld-10003]
command=/var/lib/tornado/aroundtheworld/app.py --port=10003
directory=/var/lib/tornado/aroundtheworld/
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/tornado/aroundtheworld-10003.log
stdout_logfile_maxbytes=500MB
stdout_logfile_backups=50
stdout_capture_maxbytes=1MB
stdout_events_enabled=false
loglevel=warn

如果您需要有关如何设置Nginx或其类似内容的帮助,请提交新问题。

答案 3 :(得分:2)

您可以在创建处理程序时注册多个端口

application = tornado.web.Application([
   (r".*", MainHandler),
], **app_settings)

application.listen(8080)
application.listen(8081)

答案 4 :(得分:-4)

copy /demos/blog/blog.py to blog_otherports.py

更改blog_otherports.py

中的帖子

和python blog_otherports.py

你需要运行两个进程