我有一个需要支持的客户端库,它对子目录和自定义标头身份验证方法进行硬编码。服务器已将子目录用于其他用途,因此我考虑将子域 + 子目录映射到其他子目录。服务器使用基本身份验证。
我已正确将子域重写为备用子目录,但我在身份验证方面遇到了问题。我目前在自定义标头中传递了 base64 编码的“user:pass”,并尝试proxy_set_header
设置身份验证标头。如何使用自定义标头中的值进行基本身份验证?
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";
}
答案1
我设法让它与位置内的 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/
}
}