2009-09-19 4 views
2

мне нужно, чтобы начать демонстрацию блога в следующих портах:Как я могу запустить несколько экземпляров Tornado сервера в нескольких портах

127.0.0.1:8000 127.0.0.1:8001 127.0.0.1:8002 127,0. 0.1: 8003

при запуске приложения с помощью:

./demos/blog/blog.py

начинается в порту 8888, как это определено:

define ("port", default = 8888, help = "run on the given port", type = int)

Как запустить несколько экземпляров в нескольких портах?

ответ

4

Я нашел то, что искал:

посты изменения
./demos/blog/blog.py --port=8889 
-4
copy /demos/blog/blog.py to blog_otherports.py 

в blog_otherports.py

и питона blog_otherports.py

вам нужно запустить два процесса

+0

добавив вариант выполнения, который конфигурирует порт все, что необходимо. теперь также есть фиксация на github, которая позволяет виртуализации торнадо от одного процесса на ядро ​​в вашей машине. – Carson

+0

Нет. Просто используйте '--port = ' –

3

Убедитесь, что вы знаете, опция -port анализируется операцией op модуля Tornado.

Линии, выглядит следующим образом:

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

, а затем есть вызов модуля опций, который разбирает командной строки вары автоматически.

Я просто даю вам это, потому что вы можете позже указать различные переменные в ваших программах, которые вы разрабатываете вокруг фреймворка, которые вы можете изменить для экземпляра.

2

Используйте superisord для запуска нескольких экземпляров. Поскольку каждое приложение принимает --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 или нечто подобное, чтобы сбалансировать нагрузку по Затем они задают новый вопрос.

1

Вы можете зарегистрировать несколько портов при создании обработчика

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

application.listen(8080) 
application.listen(8081) 
+0

Это должен быть принятый ответ, так как весь сервер Tornado является самоинкапсулированием. Он должен иметь возможность прослушивать несколько портов и отправлять несколько веб-приложений. – cowbert

 Смежные вопросы

  • Нет связанных вопросов^_^