我正在尝试设置始终遵循基本身份验证的Nginx proxy_pass。
结构是这样的:
后端:使用基本身份验证的https请求
Nginx Front:当从请求者传递相同的基本身份验证时,如果存在仅,则在缓存上提供文件,如果基本身份验证未记录,则从后端获取文件,即使是URI路径是相同的。
另一种情况对我来说也是可以的:nginx使用后端使用从请求者传递的基本身份验证来验证静态文件。如果为200,则在缓存中提供文件(如果可用)。
我有以下配置:
proxy_cache_path /cache levels=1:2 keys_zone=my_cache:10m max_size=90g inactive=1440m use_temp_path=off;
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name frontend.com;
location / {
proxy_cache my_cache;
proxy_pass https://backend;
proxy_cache_valid 200 1d;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache_use_stale error timeout invalid_header updating
http_500 http_502 http_503 http_504;
proxy_set_header Authorization $http_authorization;
}
}
使用此配置,在首次下载文件后,以下时间不需要验证,我认为这是一种安全风险。
如果您认为nginx可能无法完成此任务,我也会对其他代理缓存软件开放。