Запуск Apache вместе с другим веб-сервером? - PullRequest
3 голосов
/ 23 августа 2008

Кто-нибудь имел успех на двух разных веб-серверах - таких как Apache и CherryPy - рядом друг с другом на одной машине? Я экспериментирую с другими веб-серверами прямо сейчас, и я хотел бы посмотреть, смогу ли я проводить свои эксперименты, поддерживая и другие мои сайты в рабочем состоянии. Можно сказать, что это не столько вопрос о конкретном программном обеспечении, сколько общий вопрос о сети.

  • Я знаю, что возможно запускать два веб-сервера на разных портах; но есть ли способ настроить их так, чтобы они могли работать на один и тот же порт (т.е. они оба работают на порту 80)?
  • Веб-серверы не будут обслуживать файлы из тех же доменов. Например, Apache может обслуживать документы с foo.domain.com, а другой веб-сервер будет обслуживать с bar.domain.com.

Я знаю, что это не идеальная конфигурация. Я просто хотел бы посмотреть, можно ли это сделать, прежде чем я бегу по кроличьей норе. :)

Ответы [ 3 ]

7 голосов
/ 23 августа 2008

У вас не может быть двух процессов, привязанных к одному и тому же порту на одном и том же IP-адресе. Вы можете добавить еще один IP-адрес в поле, и каждый сервер прослушивает один.

Другой вариант - передать один прокси другому серверу. С Apache вы можете сделать что-то вроде:

NameVirtualHost *
<virtualhost *>
  ServerName other.site.com

  # assumes CherryPy listens on port 8080
  ProxyPass / http://127.0.0.1:8080/
  ProxyPassReverse / http://127.0.0.1:8080/
</Virtualhost>

Это довольно быстрый пример, но вы всегда можете проверить документацию ProxyPass . Помните, однако, что приложение, на которое идет прокси, получит 127.0.0.1 в своих журналах вместо IP-адреса запрашивающей стороны. Некоторые веб-серверы (apache делает с mod_rpaf ) могут заменить заголовок X-Forwarded-For вместо неправильного IP-адреса. Возможно CherryPy имеет это?

0 голосов
/ 23 августа 2008

В качестве альтернативы правильному ответу Измаила, если у вас есть сервер с двумя сетевыми картами, каждый сервер может отвечать на запросы на разных IP-адресах.

0 голосов
/ 23 августа 2008

Лучше всего поставить Apache httpd перед портом 80 и ретранслировать запросы, предназначенные для других серверов, через Apache с помощью модулей. Наиболее популярным сценарием будет Tomcat за Apache, где вы сможете запускать приложения php и jsp.

Я не знаком с CherryPy, поэтому могу только предложить вам поискать модуль Apache для CherryPy.

Редактировать: Это выглядит многообещающе: http://tools.cherrypy.org/wiki/BehindApache

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...