Комментарии на несколько ваших вопросов:
Является ли mod_wsgi лучшим решением?
Apache / mod_wsgi подходит для большинства людей, потому что у них никогда не будет достаточно трафика, чтобы вызвать проблемы, даже если Apache не был настроен должным образом. Веб-сервер обычно не является узким местом.
Есть ли какой-нибудь кэш кода операции, как в PHP?
Python кеширует скомпилированный код в памяти, и процессы сохраняются между запросами. Таким образом, вам не нужен отдельный продукт для кэширования кода операции, такой как PHP, так как именно это делает Python по умолчанию. Вам просто нужно убедиться, что вы не используете механизм или конфигурацию хостинга, которые приводят к выбрасыванию процессов при каждом запросе или слишком часто. Не используйте CGI, например.
Как мне настроить Apache?
Не зная ничего о вашем приложении или системе, в которой вы его размещаете, никто не может дать простого совета относительно того, как вам нужно настроить Apache. Это связано с тем, что в игру вступают пропускная способность, продолжительность запросов, объем используемой памяти, объем доступной памяти, количество процессоров и многое другое. Если вы еще даже не написали свое приложение, вы просто прыгаете здесь, потому что пока вы не знаете больше о вашем приложении и производственной нагрузке, вы не сможете оптимально настроить Apache.
Несколько простых предложений.
- Не размещайте PHP в том же Apache.
- Использовать рабочий Apache MPM.
- Использовать режим демона mod_wsgi и НЕ встроенный режим.
Уже одно это спасет вас от того, что вы начнете испытывать слишком много горя.
Если вам действительно нужно лучше настроить свой полный стек, т. Е. Приложение и веб-сервер, а не просто преждевременно оптимизировать, потому что вы думаете, что у вас будет следующий FaceBook, даже если вы еще не написали никакого кода Затем вам нужно начать смотреть на инструменты мониторинга производительности, чтобы понять, что делает ваше приложение. Ваше приложение и база данных станут реальным источником ваших проблем, а не веб-сервером.
Инструмент мониторинга производительности, о котором я говорю, похож на New Relic. Даже тогда, хотя, если вы находитесь в очень ранние дни и даже ничего не развернули, это само по себе будет пустой тратой времени. Другими словами, просто сначала заставьте ваш код работать, прежде чем беспокоиться о том, как его оптимально запустить.