Я в процессе переноса некоторых приложений на новый рабочий сервер.
Идея состоит в том, чтобы сохранить одни и те же URL-адреса для приложений путем определения ProxyPass
и ProxyPassReverse
директивы на старом производственном сервере.
Конфигурация на старом производственном сервере:
<VirtualHost *:80>
ServerName some-url.prod.smething.com
ServerAlias some-url.smething.com
ProxyPreserveHost On
ProxyPass / http://10.XX.XX.XX:10022/
ProxyPassReverse / http://10.XX.XX.XX:10022/
</VirtualHost>
На новом рабочем сервере:
<VirtualHost *:80>
ServerName some-url.prod.smething.com
ServerAlias some-url.smething.com
ServerAlias some-url.newprod.smething.com
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:10022/
ProxyPassReverse / http://127.0.0.1:10022/
</VirtualHost>
Я успешно протестировал это между двумя серверами разработки, но он не работает между производственными. я получаю следующую ошибку:
503 Service Unavailable
и в логах:
(111)Connection refused: proxy: HTTP: attempt to connect to (10.xx.xx.xx) failed
ap_proxy_connect_backend disabling worker for (10.xx.xx.xx)
Я думаю, что моя конфигурация apache на производстве верна, потому что она такая же, как и на dev.
При поиске решений несколько раз упоминалось, что это может не работать, если машины находятся в другом диапазоне подсети. Я думаю, что это мой случай, но, к сожалению, для этого было предусмотрено решение.
Old production server IP: 172.XX.XX.XX
New production server IP: 10.XX.XX.XX
Есть идеи, как я могу исправить эту проблему?