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

Как перенаправить на другой внутренний сервер на основе URL-адреса с помощью Apache?

Я новичок в Apache, извините, если это где-то задокументированное решение. Я рыскал по сети и не нашел ответа ...

Я хотел бы перенаправить трафик на основе URL-адреса, поступающего на мой веб-сервер Debian Wheezy, на котором запущен Apapche, на разные внутренние серверы. Например, если URL-адрес http://abc.mydomain.com он будет передан на IP-адрес сервера 192.168.0.100, но если URL-адрес http://def.mydomain.com он будет передан на IP-адрес сервера 192.168.0.110.

Заранее благодарю за любую помощь.

То, что вы хотите сделать, называется обратным прокси. В качестве альтернативы вы можете использовать Nginx, который превосходит Apache в качестве обратного прокси.

Вы можете использовать свой Apache frontend Server в качестве обратного прокси для ваших внутренних серверов: mod_proxy

например:

<VirtualHost *:80>
   ServerName abc.mydomain.com
   ProxyPass / http://192.168.0.100
   ProxyPassReverse / http://192.168.0.100
</VirtualHost>

<VirtualHost *:80>
   ServerName def.mydomain.com
   ProxyPass / http://192.168.0.110
   ProxyPassReverse / http://192.168.0.110
</VirtualHost>

Вам нужно будет включить эти модули:

a2enmod proxy 
a2enmod proxy_http

Преимущество mod_proxy в том, что он прозрачен для конечного пользователя: URL-адрес в адресной строке браузера останется неизменным: он останется http://abc.mydomain.com но на самом деле их обслуживают http://192.168.0.100.