Nginx

如何使用 nginx 代理到需要身份驗證的主機?

  • January 21, 2022

如何設置一個 nginx proxy_pass 指令,該指令還包括發送到代理主機的 HTTP 基本身份驗證資訊?

這是我需要代理到的 URL 範例:

http://username:password@192.168.0.5/export?uuid=1234567890

最終目標是允許一台伺服器從另一台伺服器(我們代理的伺服器)呈現文件,而不暴露代理伺服器的 URI。通過遵循此處找到的 Nginx 配置,我現在有 90% 的工作正確:

http://kovyrin.net/2010/07/24/nginx-fu-x-accel-redirect-remote/

我只需要添加 HTTP 基本身份驗證即可發送到代理伺服器

我得到了 alvosu 的答案,但我必須在 base64 字元串的引號內輸入單詞“Basic”,所以它看起來像這樣:

proxy_set_header Authorization "Basic dGVzdHN0cmluZw==";

前段時間我寫了一篇關於這個的文章。在此處查看詳細資訊:

http://shairosenfeld.blogspot.com/2011/03/authorization-header-in-nginx-for.html

例如:

location / {
   proxy_set_header Host $host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_pass http://6.6.6.6:80;
   proxy_set_header Authorization "Basic a2luZzppc25ha2Vk";
}

“a2luZzppc25ha2Vk” 是 “king:isnaked” base64 編碼,因此適用於

http://king:isnaked@6.6.6.6

請隨時查看部落格文章以獲取更多詳細資訊。

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