我的要求是我有两个不同的用户,一个是管理员用户,另一个是普通用户。管理员用户可以访问所有URL,普通用户只有在尝试访问其他访问被拒绝的URL时才能访问一个URL。
目前我可以设置管理员用户规则,其中管理员用户详细信息在.htpasswd中提及,并且它可以正常工作。以下是配置文件。
server { listen 8880; server_name test.com; auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/htpasswd.users; location / { proxy_pass http://localhost:5601; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
请帮忙。
答案 0 :(得分:0)
您可以使用auth_basic off;
来访问特定的location
块。
但是,location
块必须完整(并且可以从周围的块继承一些proxy module configuration statements)。
您可能需要使用regular expression location
block来匹配多个URI,因为允许的URI可能指定其他资源文件。
例如:
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/htpasswd.users;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
location / {
proxy_pass http://localhost:5601;
}
location ~ ^/(allowed/uri.html|some.js|some.css)$ {
auth_basic off;
proxy_pass http://localhost:5601;
}