Nginx

將子域映射到子目錄並將自定義標頭映射到基本身份驗證

  • August 11, 2017

我有一個需要支持硬編碼子目錄和自定義標頭身份驗證方法的客戶端庫。伺服器已經將子目錄用於其他用途,所以我在考慮將子域 + 子目錄映射到不同的子目錄。伺服器使用基本身份驗證。

我讓它正確地將子域重寫到備用子目錄,但我在身份驗證時遇到了問題。我目前在自定義標頭中傳遞了 base64 編碼的“user:pass”並嘗試proxy_set_header設置 auth 標頭。如何使用自定義標頭中的值進行基本身份驗證?

server {
   server_name subdomain.example.com;
   listen 443;

   ssl on;
   ssl_certificate /etc/nginx/ssl/example.crt;
   ssl_certificate_key /etc/nginx/ssl/example.key;

   rewrite ^/hardcodesubdir/(.*)$ https://example.com/newsubdir/$1;
   proxy_set_header Authorization "Basic $http_x_custom_header";
}

我設法讓它在一個位置內使用 proxy_pass

server {
   server_name subdomain.example.com;
   listen 443;

   ssl on;
   ssl_certificate /etc/nginx/ssl/example.crt;
   ssl_certificate_key /etc/nginx/ssl/example.key;

   location /hardcodesubdir/ {
       proxy_set_header Authorization "Basic $http_x_custom_header";
       proxy_pass https://example.com/newsubdir/
   }
}

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