Authentication
认证,可以减轻Nginx负载,停止响应未认证的用户端的请求。
HTTP Basic Authentication
新建一个如下如下格式的文件:(用户名第一列,密码第二列,并且密码是被加密过的,其中第三列是可选的,用于做注释)
# comment
name1:password1
name2:password2:comment
name3:password3
密码加密生成方式:
需要安装openssl,然后执行以下命令(类似的密码生成方式还有 htpasswd)
openssl passwd MyPassword1234
Nginx配置方式如下
location / {
auth_basic "Private site"; #未认证的用户在请求时会弹出名为Private site的认证窗口
auth_basic_user_file conf.d/passwd; #上面添加的密码文件路径和文件名
}
这种加密认证方式配置HTTPS才会更加安全
Authentication Subrequests
子请求认证
location /private/ {
auth_request /auth; #带一个internal URL参数
auth_request_set $auth_status $upstream_status; #类似代理,对子请求返回对应的状态码
}
location = /auth {
internal;
proxy_pass http://auth-server;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
proxy_set_header X-Original-URI $request_uri;
}