我在地址127.0.0.1:8090的服务器上运行REST API网络服务,在192.168.10.220的服务器上运行Apache2服务器。
在我的网站配置中,我添加了以下行:
RewriteEngine on
RewriteRule ^/api/ http://127.0.0.1:8090/
当我在网络浏览器中打开地址http://192.168.10.220/api时,我重定向到了127.0.0.1:8090并且找不到站点。
我的问题是如何重定向它,以便能够打开例如http://192.168.10.220/api/login的链接,它将返回给我http://127.0.0.1:8090/login的结果,但是在127.0.0.1:8090中将看不到地址浏览器网址。
更新1:
我找到了解决方案,而不是RewriteEngine,我应该使用它:
ProxyPass /api http://127.0.0.1:8090/api
ProxyPassReverse /api http://127.0.0.1:8090/api
现在我可以在地址http://192.168.10.220/api上使用api
但是我对第二个代理有疑问:
ProxyPass /raporty http://192.168.10.200:8080/ekoncept_raporty
ProxyPassReverse /raporty http://192.168.10.200:8080/ekoncept_raporty
这次不是api,而是Web应用程序(报告系统,不是我的)。我可以登录并工作,但是看不见某些功能,或者当我单击按钮时,它会将我重定向到登录页面。我觉得这有点像鸡鸡之类。
我应该在代理配置中使用哪些参数来修复它?
答案 0 :(得分:0)
最终配置:
ProxyPass /api http://127.0.0.1:8090/api
ProxyPassReverse /api http://127.0.0.1:8090/api
ProxyPass /raporty http://192.168.10.200:8080/ekoncept_raporty
ProxyPassReverse /raporty http://192.168.10.200:8080/ekoncept_raporty
ProxyPassReverseCookiePath /ekoncept_raporty /raporty
这是我想的cookie问题。添加此已解决的问题:
ProxyPassReverseCookiePath /ekoncept_raporty /raporty
使用API不会出现这样的问题,因为它不使用cookie。