主要观点:之前配置nginx以在 html 中列出目录和文件,现在添加认证来限制对特定目录和文件的访问。
关键信息:
- 介绍基本认证(basic authentication),但浏览器在无 javascript 时不支持设置请求头,登录后用 cookies 替代。
- 通过
nginx basic auth创建login端点验证用户/密码对并设置 cookie。 - 使用
nginx map module存储用户相关信息到 cookie 中。 - 检查 cookie 是否有效及对当前 uri 是否授权,包括按路径的访问权限。
重要细节: - 创建
basic.htpasswd文件时使用openssl。 - 在
@login_success中设置ngxpcookie 值。 - 通过
map进行各种变量的映射和条件判断来实现认证和访问控制逻辑。例如,通过map提取cookie_ngxp中的用户名,判断$user_cookie与$cookie_ngxp是否相等,提取user_cookie中的路径并检查请求 uri 是否与之匹配等。最终通过$user_authorized来确定用户是否授权访问。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。