如何在Apache中使用正确的标头代理其余api调用,因为它来自该服务器?

如何在Apache中使用正确的标头代理其余api调用,因为它来自该服务器?

问题描述:

如何正确代理通过另一台服务器的休息API调用,就好像它来自该服务器?如何在Apache中使用正确的标头代理其余api调用,因为它来自该服务器?

开发人员需要在域sub.xyz.com上讨论只能通过域xyz.com(Access-Control-Allow-Origin)访问的远程休息api。所以我尽管在主机域xyz.com的服务器上设置了一个http代理,就好像这些调用来自该域一样。 不过,我得到以下错误:

403 Forbidden Access was denied to this resource.
Unauthorized: get_collection failed permission check

执行Apache的配置我用:

ProxyRequests Off 
ProxyPreserveHost Off 
SSLProxyEngine on 
ProxyPass /api https://sub.xyz.com/api 
ProxyPassReverse /api https://sub.xyz.com/api 

如何设置这个正确,使得它的工作原理?

,如果你想保留到达后端时,应设置前端服务器名称:

ProxyPreserveHost on 

你或许应该另加:

SSLProxyCheckPeerCN off 

和/或

SSLProxyCheckPeerName off 

或者由于联系后端的主机名wh,连接在ssl握手中失败ich与其证书CN不匹配。


,如果你想在后台根据您的意见也认为代理发出请求,也许你应该开始删除代理头,如:

ProxyAddHeaders off 

但它实际上取决于什么后端查看以确定谁正在访问它。

+0

不,api应该看到请求,就好像它是由代理服务器所做的那样。如何实现这一点? – edbras

+0

@edbras我根据你的意见修改了答案。 –

+0

谢谢,只是添加ProxyAddHeaders,但它不断给出相同的错误。我不知道如何看到为什么? – edbras