Apache2中REST API的重定向/代理

时间:2018-08-27 14:00:34

标签: apache rest proxy

我在地址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应用程序(报告系统,不是我的)。我可以登录并工作,但是看不见某些功能,或者当我单击按钮时,它会将我重定向到登录页面。我觉得这有点像鸡鸡之类。

我应该在代理配置中使用哪些参数来修复它?

1 个答案:

答案 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。