在Web服务器管理中,Nginx日志记录了所有访问请求的详细信息,而用户认证则能有效保护敏感资源不被未授权访问。本文将手把手教你如何查看Nginx日志,并配置基础的HTTP基本认证(Basic Auth),实现简单的访问控制和安全配置。
Nginx默认会生成两种日志:
这些日志通常位于 /var/log/nginx/ 目录下(Linux系统)。
你可以使用以下命令实时查看访问日志:
sudo tail -f /var/log/nginx/access.log 输出示例:
192.168.1.100 - - [10/Apr/2024:14:23:01 +0800] "GET /admin HTTP/1.1" 401 195 "-" "Mozilla/5.0 ..." 注意上面的状态码 401 表示“未授权”,说明该页面启用了用户认证但用户未提供凭据。
要对某个目录(如 /admin)启用密码保护,需完成以下两步:
使用 htpasswd 工具生成用户名和密码(若未安装,可运行 sudo apt install apache2-utils):
sudo htpasswd -c /etc/nginx/.htpasswd adminuser 系统会提示你输入密码。该命令会在 /etc/nginx/ 下创建一个名为 .htpasswd 的隐藏文件,内容类似:
adminuser:$apr1$xxxxxx$yyyyyyyyyyyyyyyyyy 编辑你的站点配置文件(如 /etc/nginx/sites-available/default),在需要保护的 location 块中添加认证指令:
location /admin { auth_basic "Restricted Area"; auth_basic_user_file /etc/nginx/.htpasswd; # 其他配置...} 保存后,测试配置并重载Nginx:
sudo nginx -tsudo systemctl reload nginx 现在访问 http://your-domain.com/admin,浏览器会弹出登录框。输入正确的用户名(adminuser)和密码后才能进入。
同时,你可以在 access.log 中看到成功认证后的请求状态码变为 200:
192.168.1.100 - adminuser [10/Apr/2024:14:25:30 +0800] "GET /admin HTTP/1.1" 200 1234 ... 通过本教程,你已学会:
htpasswd 创建用户凭证虽然Basic Auth简单易用,但仅适合低敏感场景(建议配合HTTPS使用)。对于更高安全需求,可考虑OAuth、JWT或应用层认证。
关键词:Nginx日志、用户认证、访问控制、安全配置
本文由主机测评网于2025-12-01发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025121818.html