привет, у меня есть 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_", потому что он избыточен.)