Мне нужно подключить два сервера Apache по следующей причине.

Серверное приложение скомпилировано как модуль CGI. Нужно работать с базами данных, которые находятся в безопасных зонах за брандмауэрами. Это требует, чтобы приложение также находилось в безопасной зоне. В качестве решения мы рассматриваем настройку двух серверов Apache с последовательным подключением: один в DMZ (A), а другой за брандмауэрами (B). Приложение CGI будет частью сервера Apache B, который будет находиться в безопасной зоне.

Вот то, что конфигурация сервера / маршрутизация трафика предусмотрена как:

  • Сервер А будет в DMZ. Это будет первая точка контакта для входящих запросов клиентов. Это также будет последним пунктом для исходящих ответов клиенту. SSL (https) включен на этом сервере.
  • Когда сервер A получает запрос (через HTTPS), он проверяет строку запроса и для определенных шаблонов отправляет запрос на сервер Apache B, который находится в безопасной зоне за брандмауэрами. Примечание: сервер A является "внешним интерфейсом" и для нескольких других интернет-приложений, некоторые из которых работают на Tomcat в защищенной зоне (они получают запросы, пересылаемые им с помощью mod_jk).
  • Сервер B передаст полезную нагрузку запроса приложению CGI, которое обработает запрос и передаст ответ своему серверу Apache (то есть серверу B). Затем сервер B передаст ответ обратно серверу A, который отправит его обратно клиенту. Это похоже на движение трафика между сервером Apache и Tomcat через mod_jk.

Несколько вопросов:

  1. Могут ли два веб-сервера быть подключены последовательно, как я описал? Точно так же, как Apache может связывать гирлянды с Tomcat, используя mod_jk.
  2. Сервер А будет поддерживать SSL (HTTPS). Нужно ли, чтобы на сервере B была включена поддержка SSL?
  3. Предполагая, что последовательное подключение возможно, когда сервер A перенаправляет запрос, полученный по HTTPS, на сервер B, он переходит на сервер B как HTTPS или просто как HTTP? Или это то, что мы контролируем? Как?

1 ответ1

0
  1. Да, вы можете подключиться к сети. По сути, это и есть прокси-сервер. (На самом деле обратный прокси - и это то, что вы хотели бы Google для дополнительных исследований).

  2. Нет, серверу B не нужно включать SSL. Вы можете использовать mod_proxy (apache) или эквивалентный для удаления SSL. Это очень и очень часто встречается в средах балансировки / распределения нагрузки. (Я случайно получил пару из них!)

  3. В моей настройке он обычно переходит как HTTP. Я полагаю, если вы используете squid (прокси / обратный прокси), вы можете заставить его работать по протоколу HTTPS - я не пробовал, но похоже, что Apache может это сделать. Посмотрите на http://httpd.apache.org/docs/2.2/mod/mod_proxy.html и найдите на странице « https:// backend »

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .