Апач:Виртуальный хостинг с поддержкой [PHP| Python|Ruby]
-
23-08-2019 - |
Вопрос
Я экспериментирую с несколькими языками (Python, Ruby ...), и я хотел бы знать, есть ли способ для оптимизации мой сервер Apache для загрузки определенный модули Только в определенный Виртуальный хост, например:
http://myapp1 <- just with Ruby support
http://myapp2 <- just with Python support
http://myapp3 <- just with Php support
...
Спасибо.
Решение
Каждый работник Apache загружает каждый модуль, поэтому это невозможно сделать внутри самого Apache.
Что вам нужно сделать, это переместить ваши языковые модули во внешние по отношению к Apache workers процессы.
Это делается для ваших языков с помощью следующих модулей:
- PHP: mod_fastcgi мод_fastcgi.Подробная информация: Apache+ Chroot + FastCGI.
- Питон: мод_wsgi в режим демона.
- Рубин: пассажир/mod_rack
Другие советы
Я не думаю, что это возможно, поскольку,
- Один и тот же поток / разветвленный процесс может обслуживать страницы с разных виртуальных хостингов.Итак, если он загрузил только python, что произойдет, когда ему нужно будет обслуживать ruby?
- По причине 1 некоторые директивы относятся только к веб-серверу и не специфичны для virtualhost.MaxRequestsPerChild, LoadModule и т.д. Являются таковыми.
Я думаю, что единственный способ - это иметь "прокси"-веб-сервер, который отправляет запросы на реальные серверы ...
Прокси-сервер имеет список доменных имен -> Язык на стороне сервера и не делает ничего другого, кроме прозрачного перенаправления на правильный реальный сервер
Существует N реальных серверов, каждый из которых имеет определенную конфигурацию и поддерживается и загружается один язык ...разумеется, каждый сервер будет прослушивать через свой порт и в конечном итоге только на устройстве обратной связи
Apache mod_proxy должен выполнить эту работу
Мои 2 цента
Моя идея заключается в том, что несколько процессов apache (каждый с разной конфигурацией) прослушивают разные адреса и / или порты, а http-прокси (squid или apache) перед перенаправлением на соответствующий сервер.Это дает возможное дополнительное преимущество кэширования.