Вот что я пытаюсь сделать:
NameVirtualHost *
<VirtualHost *>
ServerName testsite.org
ServerAdmin webmaster@testsite.org
DocumentRoot /var/www/
</VirtualHost>
<VirtualHost *>
ServerName panel.testsite.org
ProxyPass / http://panel.testsite.org:10000/
ProxyPassReverse / http://panel.testsite.org:10000/
</VirtualHost>
<VirtualHost 12.34.56.78>
ServerName newsite.com
ServerAdmin webmaster@newsite.com
DocumentRoot /var/newsite/
</VirtualHost>
<VirtualHost 12.34.56.78>
ServerName panel.newsite.com
ProxyPass / http://panel.newsite.com:10000/
ProxyPassReverse / http://panel.newsite.com:10000/
</VirtualHost>
Проблема в том, что он не примет второй виртуальный хост с IP 12.34.56.78, потому что он говорит, что он уже существует. Panel.newsite.com и newsite.com имеют один и тот же IP-адрес ... поэтому я не уверен, как я могу сделать так, чтобы только URL-адрес "panel.newsite.com" передавался прокси на порт 10000, но никакой другой URL-адрес на сайте новостей .com
Виртуальный хост действительно не применяется к нескольким экземплярам одного и того же IP-адреса. Вам не нужно использовать конкретный IP-адрес, если ваш «NameVirtualHost» уже *.
Пытаться:
<VirtualHost *>
ServerName newsite.com
ServerAdmin webmaster@newsite.com
DocumentRoot /var/newsite/
</VirtualHost>
<VirtualHost *>
ServerName panel.newsite.com
ProxyPass / http://panel.newsite.com:10000/
ProxyPassReverse / http://panel.newsite.com:10000/
</VirtualHost>
Если директива виртуального хоста не уникальна (или не является подстановочным знаком), тогда в конфигурации по умолчанию используется первое совпадение, поэтому она не проходит мимо первого, поскольку IP-адрес переопределяет ServerName.