安装 htpasswd

# RHEL / CentOS / Oracle Linux
yum -y install httpd-tools
# Debian,Ubuntu
apt -y install apache2-utils

修改 nginx 的 server 配置文件,添加如下两句

auth_basic  "User Authentication"; # 登录时显示的字符
auth_basic_user_file conf/htpasswd.db; 

示例:

server {
    ...
    auth_basic  "User Authentication";
    auth_basic_user_file conf/htpasswd.db;

    location /public/ {
        auth_basic off;
    }
}

生成密码

-c 代表是新建 htpasswd.db 文件,如果有就不用加-c 了 ,不然原来的文件会被覆盖

sudo htpasswd -c /etc/apache2/htpasswd.db user1

FAQ

如果是代理的后端 es 有密码的话,需要把 es 的认证密码也加到 htpasswd 文件里,不然会一直提示密码错误