如何使用nginx进行用户级别访问控制?

我想使用nginx对特定URL进行用户级别的访问控制,

对于其他用户<uid>,他们只能访问http://myserver.com/<uid> (使用POST方法)。比如,用户larrycai只能对http://myserver.com/larrycai/xxx进行POST请求。

我不想在上游服务器中进行此控制。

基本身份验证用于访问验证,如下所示:

server {
    ...
    auth_basic "Auth";
    auth_basic_user_file conf/htpasswd;
}

现在,如何将经过身份验证的用户映射到其自己的URL?(我是nginx的新手)。

我的用例是nginx Docker容器位于docker-registry之前,以获得更好的用户访问控制。

2015.1.11 更新

uid与Unix系统无关,仅用于应用程序,映射到REST接口。

是否可以使用额外的openresty模块(基于lua)?

点赞
用户4134550
用户4134550

你不能在配置文件中获取用户信息。

你可以通过以下方式限制一些访问:

location /larrycai {
    deny all;
}

总的来说,你不能通过 nginx 限制用户访问。你可以编写一个 PHP 脚本,但这似乎不是你想要的。

2015-01-10 15:25:01