nginx

Table of Contents

1. Basic Auth

一些服务没有认证模块,比如 Prometheus,NGINX 的 ngx_http_auth_basic_module , 使用「HTTP Basic Authentication」协议做简单的账户名和密码认证。配置如下:

location / {
    auth_basic           "closed site";
    auth_basic_user_file conf/htpasswd;
}

auth_basic 用来指定认证打开或者关闭,特殊值的 off 表示关闭状态,设置为字符串时,一般做为认证标题。

auth_basic_user_file 指定保存用户名和密码的文件,可以使用 htpasswd 工具来生成账号名和密码文件。

htpasswd 是 HTTPD 工具集的一部分,所以要先安装:

yum install -y httpd-tools

生成认证凭据,

htpasswd -c /etc/nginx/.htpasswd admin

/etc/nginx/.htpasswd 是凭据文件位置, admin 是用户名,执行时会提示输入密码,文件内容类似这样:

# /etc/nginx/.htpasswd
admin:$apr1$z2.a8U.c$DGsdj6MGmnfnQOwF3mWaE0

密码是经过加密的,最后将 nginx 配置中的 auth_basic_user_file 指向凭据文件即可。

2. FAQ

2.1. http header 包含下划线会被忽略?

有效的 http Header 命名规范是英文字母,数字和中划线,可能包含下划线。下划线被 underscores_in_headers 控制,默认是关闭的状态。1

Footnotes:

First created: 2019-06-02 17:28:48
Last updated: 2022-12-11 Sun 12:49
Power by Emacs 29.0.91 (Org mode 9.6.6)