Назад | Перейти на главную страницу

Как передать запрос с одного сервера apache на другой

У меня есть два сервера Apache с включенным mod_proxy. Я хочу знать, как «передать запрос» с «Apache Server A» на «Apache Server B», используя тот же порт (80).

На "сервере A" с внутренним ip: 192.168.0.5 я настроил DNS, и я также использую его в качестве своего почтового сервера.

На "сервере B" с внутренним ip: 192.168.0.10 у меня есть собственный облачный сервер.

Сегодня, когда я захожу на wwww.mydomain.com или www.mydomain.com/webmail, все работает, потому что весь контент находится на «сервере A», и мне нужно, чтобы когда кто-то пытается получить доступ к owncloud.mydomain.com, они могут получить доступ к моему серверу B. не перенаправляя их на другой порт, например owncloud.mydomain.com:81, я просто хочу использовать порт 80.

На самом деле я получаю цикл перенаправления, потому что, когда я пытаюсь перенаправить, я предполагаю, что «СЕРВЕР А» сам получает тот же запрос. Я установил мой виртуальный хост, работающий на том же «СЕРВЕРЕ А», я хочу «перенаправить» на другой сервер, используя тот же порт и URL (owncloud.mydomain.com).

Я не хочу перенаправлять через другой порт.

Вам нужно будет сделать что-то подобное на сервере A:

NameVirtualHost *
<VirtualHost *>
    ServerName owncloud.mydomain.com

    ProxyRequests Off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    ProxyPass / http://192.168.0.10:80/
    ProxyPassReverse / http://192.168.0.10:80/
    <Location />
        Order allow,deny
        Allow from all
    </Location>
</VirtualHost>

В зависимости от вашего приложения вам может потребоваться использовать одно или все из следующего:

  • X-Forwarded-For - IP-адрес клиента.
  • X-Forwarded-Host - исходный хост, запрошенный клиентом в заголовке HTTP-запроса Host.
  • X-Forwarded-Server - имя хоста прокси-сервера.

Взгляните на документация по mod_proxy для получения дополнительных советов и рекомендаций.

Ссылки