Apache2 中 REST API 的重定向/代理



我在地址为 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。

最新更新