2017-09-18 84 views
0

如何正確代理通過另一臺服務器的休息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 

如何設置這個正確,使得它的工作原理?

回答

0

,如果你想保留到達後端時,應設置前端服務器名稱:

ProxyPreserveHost on 

你或許應該另加:

SSLProxyCheckPeerCN off 

和/或

SSLProxyCheckPeerName off 

或者由於聯繫後端的主機名wh,連接在ssl握手中失敗ich與其證書CN不匹配。


,如果你想在後臺根據您的意見也認爲代理髮出請求,也許你應該開始刪除代理頭,如:

ProxyAddHeaders off 

但它實際上取決於什麼後端查看以確定誰正在訪問它。

+0

不,api應該看到請求,就好像它是由代理服務器所做的那樣。如何實現這一點? – edbras

+0

@edbras我根據你的意見修改了答案。 –

+0

謝謝,只是添加ProxyAddHeaders,但它不斷給出相同的錯誤。我不知道如何看到爲什麼? – edbras

相關問題