我需要將請求中繼到不受我控制的 Web 服務,并過濾掉點點滴滴,并將回應回傳給請求的發起者。
通過這樣做,我可以將此 Web 服務的位置和憑據保密給請求的發起者,并過濾掉一些資料(Web 服務不允許直接這樣做)。過濾器可以是某種腳本(如管道:來自 web 服務的回應 -> 過濾器 -> 從 web 服務回傳過濾后的回應以提供請求)。
我已經看到 Nginx 被用作反向代理(甚至可能作為代理),具有重寫 http 標頭或服務器名稱等的能力,所以我認為這對 Nginx 來說是可能的。但是,我實際上還沒有看到(或發現)paylod 被改變的例子。也許我正在搜索錯誤的關鍵字......誰能分享一些經驗或指出我正確的方向?我不一定使用 nginx,但我想,因為我有一些使用它的經驗(并且它提供例如身份驗證和其他 thibgs),我會從那里開始。
uj5u.com熱心網友回復:
以下是您的一些選擇:
標準模塊
ngx_http_sub_module;更復雜的模塊
ngx_http_substitutions_filter_module(這個模塊支持正則運算式;但是,我對最新 nginx 版本可能存在的兼容性問題一無所知);Lua 腳本方法使用
lua-nginx-module/ OpenResty。這是一個重寫請求和回應正文和標頭的示例:Is it possible to rewrite SOAP POST request body with Apache or Nginx? Nginx 在任何埠上偵聽,但在 8080 上重寫;使用njs模塊的 JavaScript 方法;如果您需要處理 JSON 回應,這可能是最方便的方式。檢查
js_body_filter指令。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/495831.html
