Два прокси-приложения за 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> в обоих конфигурационных файлах.

Другие вопросы по тегам