【发布时间】:2017-06-05 11:19:26
【问题描述】:
我开始使用 Nginx 反向代理我的应用程序,以便在客户网络之外访问互联网。
我设法让它工作,限制需要公开的 URL 等,但还有一件事要完成我的工作。
我想根据用户名限制用户访问。但是,我不想为我要阻止的每个用户创建一个 if,而是使用通配符,因为我要阻止的所有用户都以特定字符串结尾:@saspw
我的 /etc/nginx/conf.d/reverseproxy.conf 示例
server {
listen 80; # Proxy trafic for SAS Visual Analytics Transport Services on HTTP
server_name mcdonalds-va-reverseproxy.cons.sashq-r.openstack.sas.com;
if ($remote_user = '*@saspw'){
return 401;
}
location /SASVisualAnalyticsTransport {
proxy_pass https://mtbis.mcdonalds.com.au:8343/SASVisualAnalyticsTransport/;
}
}
在 $remote_user if 中,我希望所有用户名以@saspw 结尾的用户都会收到 401 错误(稍后我将更改为 404)。
只有在我输入整个用户名时才有效,例如 joe@saspw。使用通配符 (*,?) 不起作用。
有没有办法让 $remote_user 以这种方式解决通配符?
谢谢你, 乔
【问题讨论】:
-
Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super User 或Unix & Linux Stack Exchange 会是一个更好的提问地方。另见Where do I post questions about Dev Ops?