我在地址为 127.0.0.1:8090 的服务器上运行 REST API Web 服务,在 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 的结果,但在浏览器 url 中看不到 127.0.0.1:8090 地址。
更新 1:
我找到了解决方案,而不是重写引擎,我应该使用这个:
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应用程序(报告系统,不是我的(。我可以登录并工作,但是某些功能我看不到,或者当我单击按钮时,它会将我重定向到登录页面。我认为这是与coockies之类的东西。
我应该在我的代理配置中使用什么参数来修复它?
最终配置:
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
正如我所想的那样,这是饼干问题。添加此已修复的问题:
ProxyPassReverseCookiePath /ekoncept_raporty /raporty
使用API,没有这样的问题,因为它不使用cookie。