在 nginx 源码编译时开启 auth_basic 认证模块,需要在执行 ./configure 脚本时添加 --with-http_auth_module 参数。该模块默认已包含在 nginx 源码包中,无需额外下载第三方插件,只需在配置阶段显式启用即可生成支持基本认证的 nginx 二进制文件。

如何验证模块是否成功编译进 Nginx
编译安装完成后,可以通过运行 nginx -V 命令来查看当前 Nginx 的二进制文件中包含了哪些模块。如果输出结果中包含 --with-http_auth_module,则说明模块已成功集成。这一步是确认编译配置生效的关键环节,确保后续的配置修改能被正确识别。

./configure --prefix=/usr/local/nginx --with-http_auth_module make sudo make install nginx -V 2>&1 | grep auth
如何在 Nginx 配置文件中启用 Basic Auth
模块编译成功后,需要在 nginx.conf 或对应的 server/location 块中添加认证指令。使用 auth_basic 指定提示信息,并使用 auth_basic_user_file 指向包含用户名和密码的密码文件。Nginx 本身不直接管理用户数据库,而是依赖外部工具生成的密码文件进行校验。

location /protected {
auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/.htpasswd;
}
如何生成 Nginx 可用的密码文件
由于 auth_basic_user_file 需要特定格式的密码文件,通常使用 Apache 提供的 htpasswd 工具或 OpenSSL 命令来生成。如果没有安装 Apache 工具集,可以使用 OpenSSL 快速生成单行密码记录。文件格式为 username:encrypted_password,每行一个用户。这是实现认证功能的最后一步,确保密码文件权限正确且格式无误。











