我正在将一些应用程序迁移到新的生产服务器。
其想法是通过在旧生产服务器上定义ProxyPass
和指令来为应用程序保留相同的 URL 。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 配置是正确的,因为它与在开发上的相同。
寻找解决方案时,多次提到如果机器位于不同的子网范围内,则可能无法正常工作。我认为这是我的情况,但不幸的是,已经提供了解决方案。
Old production server IP: 172.XX.XX.XX
New production server IP: 10.XX.XX.XX
有什么想法可以解决这个问题吗?