У меня есть веб-сервер, который в настоящее время работает в Apache с некоторыми виртуальными хостами ... Я бы развернул свое приложение django на этом сервере. Но я бы хотел использовать Nginx. (Я не могу сейчас перенести весь свой виртуальный сервер на Nginx). Итак, мой вопрос ... Могу ли я запустить Apache и Nginx на одном сервере? Как я могу это сделать? У меня есть конкретное имя хоста (виртуальный хост), на которое мое приложение django "ответит".
Спасибо,
По возможности я считаю, что лучше поставить nginx
впереди - т.е. получить ответ на порт 80. Настройте его так, чтобы он обрабатывал все ваши запросы, не относящиеся к Django, включая изображения, CSS, JS и т. д. Он очень легкий и молниеносный. nginx
не поддерживает напрямую какие-либо среды сценариев (поэтому он такой маленький и быстрый), поэтому все, что у вас есть, что хочет / нуждается в среде Apache, можно обрабатывать через FastCGI.
WebFaction (хостинговая компания, которым я являюсь довольным клиентом) делает это таким образом, и я был очень впечатлен производительностью сайтов Django в среде виртуального хостинга.
Заставьте nginx прослушивать порт, отличный от Apache, и (при условии, что Apache является вашим основным сервером) создайте VirtualHost, который прокси запросы к nginx. Но я думаю, что это не лучшее решение - вам придется подключить Django к nginx с FastCGI (или что-то подобное), и вы получите три сервера (Apache, nginx, Джанго Fastcgi) вместо одного (Apache с mod_wsgi).
Вот развернуть мастерскую где они делают именно то, что вы ищете (за исключением того, что они не используют виртуальные хосты)
В резюме они используют легкий тяжелый подход, когда nginx принимает первый запрос и проксирует их на apache или отвечает на ошибку в случае одного. Они говорят о других вещах, таких как репликация БД, ткань и т. Д. Это стоит того, чтобы это увидеть.