Я регулярно использую Apache для обратного прокси-сервера на другие серверы с помощью ProxyPass и ProxyPassReverse. Я делал это папкой верхнего уровня. Но теперь у меня есть требование разместить домашнюю страницу сайта на новом сервере CMS.
Как лучше всего изменить прокси только для домашней страницы (для запросов: GET / HTTP / 1.1), не затрагивая каждый запрос?
Думаю, я могу перечислить все каталоги и страницы верхнего уровня на сервере с помощью! директива. Но, конечно, есть способ получше.
Вся помощь получена с благодарностью.
Директивы ProxyPass обрабатываются в порядке первого совпадения, просто укажите последнюю в CMS, например.
ProxyPass /app1 http://app1.example.org/app1
ProxyPassReverse /app1 http://app1.example.org/app1
ProxyPass /app2 http://app2.example.org/app2
ProxyPassReverse /app2 http://app2.example.org/app2
ProxyPass / http://cms.example.org/
ProxyPassReverse / http://cms.example.org/
В качестве альтернативы надейтесь на хорошо работающую CMS, где только основная целевая страница находится в корне, а все скрипты, изображения и другой контент находятся в соответствующих подкаталогах:
# Redirect requests to www.example.org/ to www.example.org/index.html
RewriteRule ^/$ /index.html
ProxyPass /index.html http://cms.example.org/index.html
ProxyPass /css http://cms.example.org/css
ProxyPassReverse /css http://cms.example.org/css
ProxyPass /img http://cms.example.org/img
ProxyPassReverse /img http://cms.example.org/img