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

конфигурация apache vhost, чтобы _default_ перешел на другой IP

привет, у меня есть 3 сервера apache, но один входящий ip с одним портом 80 для прослушивания. весь трафик порта 80 идет на 192.168.1.10. Но я хочу, чтобы vhost отправлял определенные домены, например www.mydomain.co.uk в требуемые локальные папки, а некоторые домены - на сервер server2 (192.168..1.11), и это работает для доменов wiki.mydomain.co.uk он работает отлично, но я ТАКЖЕ хочу отправить весь "запасной" неизвестный трафик на 192.168.1.12, и это НЕ работает так, как я бы надеялся.

Все, что я хочу сделать, это отправить трафик, которого нет в списке, на сервер 192.168.1.12. Когда я проверяю порт на машине 192.168.1.12, ничего не приходит.

NameVirtualHost *:80

Alias /errors/ /var/www/html/mydomain/errors/

<VirtualHost *:80>
  ServerName www.mydomain.co.uk
  DocumentRoot /var/www/html/mydomain/www
  ErrorDocument 404 /errors/404error.php
</VirtualHost>

<VirtualHost *:80>
  ServerName admin.mydomain.co.uk
  DocumentRoot /var/www/html/mydomain/admin
</VirtualHost>

<VirtualHost *:80>
  ServerName wiki.mydomain.co.uk
  ServerAdmin root@localhost
  ProxyRequests Off
  ProxyPreserveHost On
  ProxyPass / http://192.168.1.11/
  ProxyPassReverse / http://192.168.1.11/
  <Proxy *>
    Order allow,deny
    Allow from all
  </Proxy>
  ErrorLog /var/log/httpd/wiki.mydomain.co.uk.log
  CustomLog /var/log/httpd/wiki.mydomain.co.uk.err.log combined
</VirtualHost>

<VirtualHost _default_:80>
   ProxyPreserveHost On
   ProxyPass / http://192.168.1.12/
   ProxyPassReverse / http://192.168.1.12/
</VirtualHost>

apachectl -S

VirtualHost

 configuration:
wildcard NameVirtualHosts and _default_ servers:
_default_:443          www.mydomain.co.uk (/etc/httpd/conf.d/ssl.conf:74)
*:80                   is a NameVirtualHost
         default server www.mydomain.co.uk (/etc/httpd/conf.d/vhost.conf:5)
         port 80 namevhost www.mydomain.co.uk (/etc/httpd/conf.d/vhost.conf:5)
         port 80 namevhost www.mydomain.co.uk (/etc/httpd/conf.d/vhost.conf:12)
         port 80 namevhost admin.mydomain.co.uk (/etc/httpd/conf.d/vhost.conf:18)
         port 80 namevhost wiki.mydomain.co.uk (/etc/httpd/conf.d/vhost.conf:23)

Поместите виртуальный хост по умолчанию первый в файле конфигурации.

Если совпадение с Host: sent не найдено, будет использоваться первый виртуальный хост. В вашем случае это означает, что это должно быть наверху:

<VirtualHost *:80>
   ProxyPreserveHost On
   ProxyPass / http://192.168.1.12/
   ProxyPassReverse / http://192.168.1.12/
</VirtualHost>

(Я отбросил "_default_", потому что он избыточен.)