Вероятно, существует уже существующий вопрос (или руководство где-то в Интернете) по этому поводу, но я не смог его найти.
Мы хотим постепенно перенести нашу пользовательскую базу с одной реализации внутреннего сервера на новую реализацию на других серверах.
Перед внутренним сервером уже есть обратный прокси Apache2.
Поэтому мы хотели бы проксировать некоторые диапазоны / подсети исходных IP-адресов на новый сервер, оставив все остальные перенаправления на исходный сервер. Затем добавьте к диапазонам IP-адресов этот прокси-сервер для нового сервера, пока все они не будут работать. Затем удалите старый сервер.
Может кто-нибудь подскажет, как это делается в Apache?
Для меня подход был бы примерно таким:
# /etc/httpd/conf/httpd.conf
<snip>
<If "-R '10.1.0.0/16'">
ProxyPassReverse /app /http://new-app/app
</If>
<ElseIf "-R '192.168.1.0/24'">
ProxyPassReverse /app /http://new-app/app
</ElseIf>
<Else>
ProxyPassReverse /app /http://old-app/app
</Else>
Вы можете сделать это с помощью mod_rewrite для проксирования. Вам нужно будет установить условие перезаписи на основе исходного IP-адреса и правила перезаписи с флагом [P]. Примерно так должно работать:
RewriteCond %{REMOTE_ADDR} ^10\.2\.
RewriteRule ^/(.*) http://old-app/$1 [P]
ProxyPassReverse / http://old-app/
RewriteCond %{REMOTE_ADDR} ^10\.3\.
RewriteRule ^/(.*) http://new-app/$1 [P]
ProxyPassReverse / http://new-app/
Проверьте http://httpd.apache.org/docs/2.2/rewrite/proxy.html Чтобы получить больше информации.