Запуск Apache вместе с другим веб-сервером?

StackOverflow https://stackoverflow.com/questions/23715

  •  09-06-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

У вас не может быть двух процессов, привязанных к одному и тому же порту на одном 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-адреса.Возможно, у Черрипи это есть?

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

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

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

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

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

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