Skip to content
Go back

【归档文章】Nginx 学习(三)配置基础的用户登录验证以保护站点

| 0 Views Edit page

关于 Nginx 的学习笔记。

注:这篇文章是从旧的博客系统中迁移过来的、我觉得还存在价值的文章。但是由于时间关系,可能已经不再是最佳实践,请仅作参考。

临时分享下文件可用,没有认证时间限制所以无法实现类似认证一次 6 小时后超时这种功能,每次访问页面或是 API 调用都需要验证。

官方文档:Restricting Access with HTTP Basic Authentication


1、安装 httpd-tools 模块以启用 htpasswd

yum -y install httpd-tools

2、配置用户信息

我这里储存用户账号密码的文件选在在 /etc/nginx/conf.d/ 下保存

cd /etc/nginx/conf.d/
htpasswd -c pass.db $username

输入密码:

New password: $password
Re-type new password: $password

确认一下是否添加成功,密码会被加密:

cat pass.db

3、修改 Nginx 配置文件

    ...
    ...
    server {
        listen      80;
        server_name example.com;

        # 强制跳转 HTTPS
        location / {
            # 认证
            auth_basic "User Authentication";
            auth_basic_user_file /etc/nginx/conf.d/pass.db;
            # 301 跳转
            return 301 https://$server_name$request_uri;
        }
    }
    ...
    ...

之后重启再访问页面就能看到:
登录提示框

结束。


Edit page