Два прокси-приложения за Apache
Я запускаю два веб-приложения, одно из которых основано на торнадо, а другое на основе cherrypy, за Apache на сервере opensuse. Оба работают в разных доменах, указывая на один и тот же IP. Эти два приложения работают на одном сервере и работают на 127.0.0.1 и на разных портах - 8090 для приложения cherrypy и 8091 для приложения tornado. Apache был настроен для обслуживания приложений с ProxyPass с двумя виртуальными хостами, такими как:
conf1.conf
<VirtualHost domain1.com:80>
ServerName domain1.com
ProxyPass / http://127.0.0.1:8090/
ProxyPassReverse / http://127.0.0.1:8090/
<Location "/">
Require all granted
</Location>
</VirtualHost>
и conf2.conf
<VirtualHost domain2.com:80>
ServerName domain2.com
ProxyPass / http://127.0.0.1:8091/
ProxyPassReverse / http://127.0.0.1:8091/
<Location "/">
Require all granted
</Location>
</VirtualHost>
Однако, когда я пытаюсь получить доступ к любому из них, я получаю 403 запрещено. Кажется, что я могу заставить работать только один из них, если я изменю директиву VirtualHost на *:80 и удалю другую. Как мне сделать так, чтобы оба запускались одновременно?
1 ответ
Хотя VirtualHost
Директива поддерживает использование имени хоста в ie <VirtualHost example.com:80>
это не рекомендуется.
Либо используйте определенный IP-адрес, либо подстановочный знак * для сопоставления с любым IP-адресом.
Если у вас нет особых причин не рекомендовать <VirtualHost *:80>
в обоих конфигурационных файлах.