1

у меня есть сервер Apache, работающий для двух сайтов на порту 80. Допустим, домен - example.com а у меня есть другой домен example2.com . Когда пользователь посещает example.com , я хочу, чтобы он обслуживал эти файлы (например, виртуальный хост), но когда кто-то пытается получить доступ к домену example2.com (который находится на том же IP- адресе ), я хочу, чтобы он перенаправлял на другой IP-адрес. адрес на порту 90 без посетителя, зная, что он находится на другом порту.

Как мне этого добиться?

<VirtualHost example.com:80>   
 DocumentRoot {rootdir}  
 ServerName example.com  
 ServerAlias example.com 
</VirtualHost>   
<VirtualHost *:80>   
  NoProxy .example.com  
  ProxyPreserveHost On  
  ProxyRequests Off  
  ServerName *  
  ProxyPass / http://server2:90  
  ProxyPassReverse / http://server2:90  
</VirtualHost>  

Это не сработает, и он пытается получить example.com с прокси тоже, кто-нибудь знает почему?

1 ответ1

4

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

Например что-то вроде этого должно работать:

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName example.com
<VirtualHost>
<VirtualHost *:80>
    ServerName example2.com
    ProxyPass / http://server2:90/
    ProxyPassReverse / http://server2:90/
    ProxyPreserveHost On  
    ProxyRequests Off
<VirtualHost>

также убедитесь, что mod_proxy загружен

LoadModule proxy_module modules/mod_proxy.so

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