我有以下配置。我只想授权 /
因为唯一一个有 UI。其他 URL 已经是 api,如 /report/
、/group/
、/delete/
等。
upstream gofastdfs{
server localhost:8081;
keepalive 32;
}
server {
listen 8080;
server_name localhost;
gzip on;
gzip_types '*';
location / {
auth_basic "Caution";
auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
keepalive_timeout 620;
proxy_redirect off;
proxy_buffering off;
proxy_pass http://gofastdfs;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
但是我的配置授权每个网址,我只想限制为/
答案 0 :(得分:0)
location /
匹配任何其他 location
块未处理的 URI - 即它是默认的 location
。
location = /
仅匹配单个 URI /
。
有关详细信息,请参阅 this document。
您可以将配置分成两个 location
块,一个带身份验证,另一个不带。一些语句需要在两个 location
块之间复制,但大多数可以移动到外部上下文中。
例如:
keepalive_timeout 620;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
location = / {
auth_basic "Caution";
auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
proxy_pass http://gofastdfs;
}
location / {
proxy_pass http://gofastdfs;
}