Skip to content

Commit c102bbb

Browse files
committed
ordertut10: now we use access_by_lua instead of auth_request in the config samples for the "satisfy" directive.
1 parent 5c2ab4c commit c102bbb

File tree

1 file changed

+6
-12
lines changed

1 file changed

+6
-12
lines changed

zh-cn/02-NginxDirectiveExecOrder10.tut

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -146,22 +146,16 @@ B 都在 C<access> 阶段注册了与访问控制相关的处理程序,那就
146146
satisfy all;
147147

148148
deny all;
149-
auth_request /auth;
149+
access_by_lua 'ngx.exit(ngx.OK)';
150150

151151
echo something important;
152152
}
153153

154-
location /auth {
155-
internal;
156-
echo OK;
157-
}
158-
159154
这里,我们在 C</test> 接口中同时配置了 L<ngx_access> 模
160-
块和 L<ngx_auth_request> 模块,这样 C<access> 阶
155+
块和 L<ngx_lua> 模块,这样 C<access> 阶
161156
段就有这两个模块一起来做检验工作。其中,语句 C<deny all> 会让 L<ngx_access>
162-
模块的处理程序在这里总是会拒绝访问,而语句 C<auth_request /auth>
163-
则总是允许访问(因为 C</auth> 接口永远返回 C<200> 成功码的响应
164-
)。当我们通过 L<ngx_core/satisfy> 指令配置了 C<all>
157+
模块的处理程序在这里总是会拒绝访问,而语句 C<access_by_lua 'ngx.exit(ngx.OK)'>
158+
则总是允许访问。当我们通过 L<ngx_core/satisfy> 指令配置了 C<all>
165159
方式时,就需要 C<access> 阶段的所有模块都通过验证,但不幸的是,这里
166160
L<ngx_access> 模块总是会拒绝访问,所以整个请求就会被拒:
167161

@@ -187,6 +181,6 @@ any>,则结果则会完全不同:
187181
something important
188182

189183
即请求反而最终通过了验证。这是因为在 C<any> 方式下,C<access>
190-
阶段只要有一个模块通过了验证,就会认为请求整体通过了验证,而在上例中,L<ngx_auth_request>
191-
模块总是会通过验证的
184+
阶段只要有一个模块通过了验证,就会认为请求整体通过了验证,而在上例中,L<ngx_lua>
185+
模块的 L<ngx_lua/access_by_lua> 语句总是会通过验证的
192186

0 commit comments

Comments
 (0)