Nginx

將 proxy_pass 與 nginx 一起使用時以正確的方式附加查詢參數

  • September 4, 2020

我的 nginx 代理傳遞配置設置如下:

location /try-me {
  proxy_pass https://some-domain.com?id=true&zone=false
} 

這工作正常。但問題是當瀏覽器中的某個人嘗試

https://mywebsite.com/try-me?ping=true&foo=bar

在 proxy_pass 之後創建的最終 URL 是:

https://some-domain.com?id=true&zone=false?ping=true&foo=bar

查詢參數格式完全不正確。如何確保 Nginx附加以下列方式轉發的任何查詢參數:

id=true&zone=false&ping=true&foo=bar

使用它可能rewrite...break比試圖proxy_pass正確地做到這一點更好。

例如:

location /try-me {
   rewrite ^ /?id=true&zone=false break;
   proxy_pass https://some-domain.com;
}

rewrite指令將正確附加原始參數。有關詳細資訊,請參閱此文件

在上面的範例中,任何以 開頭的 URI/try-me都將/使用調整後的查詢字元串重寫。

引用自:https://serverfault.com/questions/1032689