В конторе стоит апач на винде, крутится самописный php-сайт. В силу организационных причин, сменить ОС и http-сервер нельзя. Вопрос, как лучше сюда встроить небольшое django-приложение?
Пробовал через виндовый mod_wsgi — работает.
Вопрос, будет ли работать быстрее/лучше, если запустить приложение через tornadoweb как сервер и настроить у апача проксирование через mod_proxy?
Если вас устраивает работа mod_wsgi — оставьте его. Tornado, если поверх него запускать обычный wsgi-фреймворк, не даст никаких плюсов. Более того, может стать только хуже.
Спасибо за советы, всю ночь тестировал различные способы запуска.
Пришел к следующему выводу: может, под никсами mod_wsgi работает быстрее, но под виндой он запускается только в embded-режиме. В результате, проксирование апачем торнадо-сервера отрабатывает быстрее. Прирост становится еще больше, если запустить 4 экземпляра торнадо-сервера на разных портах и настроить в апаче балансировку. Время и кол-во запросов различается примерно в 2.5 раза в пользу торнадо-решения.
Самым удачным на мой взгляд будет nginx отдающий всю статику и проксирующий по доменному имени на uwsgi (сайты на джанго) и apache (все остальное). К апачу лучше доступ извне на прямую закрыть. Практика показала не плохую производительность (за ссылкой и деталями можно в личку, а то реклама).
Вместо uwsgi неожиданно хорошо себя на практике показал gUnicorn с gevent worker'ами.
> В силу организационных причин, сменить http-сервер нельзя.
Никто не заметит, что апач вдруг стал работать на другом порту. Скрипты будут получать от nginx все метаданные. С одной лишь разницей, что апачу не придется отдавать статику, но и это можно оставить (что не очень эффективно) если скрипты чего умного с ней делают в run-time.
И для админа апача ничего кроме порта не измениться. Проблем быть не должно.