Вопрос

Я экспериментирую с несколькими языками (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 процессы.

Это делается для ваших языков с помощью следующих модулей:

Другие советы

Я не думаю, что это возможно, поскольку,

  1. Один и тот же поток / разветвленный процесс может обслуживать страницы с разных виртуальных хостингов.Итак, если он загрузил только python, что произойдет, когда ему нужно будет обслуживать ruby?
  2. По причине 1 некоторые директивы относятся только к веб-серверу и не специфичны для virtualhost.MaxRequestsPerChild, LoadModule и т.д. Являются таковыми.

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

Прокси-сервер имеет список доменных имен -> Язык на стороне сервера и не делает ничего другого, кроме прозрачного перенаправления на правильный реальный сервер

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

Apache mod_proxy должен выполнить эту работу

Мои 2 цента

Моя идея заключается в том, что несколько процессов apache (каждый с разной конфигурацией) прослушивают разные адреса и / или порты, а http-прокси (squid или apache) перед перенаправлением на соответствующий сервер.Это дает возможное дополнительное преимущество кэширования.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top