NGINX 允许您在您的网站上配置基本的 HTTP 身份验证,这允许您使用简单的用户名/密码限制对您网站上一个或多个页面的访问。 您可以使用此方法来保护 http、服务器甚至位置块。 您可以使用它来保护您网站的虚拟主机、网站或敏感页面,例如 admin 页。 在本文中,我们将了解如何在 NGINX 中配置基本身份验证。
如何在 NGINX 中配置基本身份验证
以下是在 NGINX 中配置基本身份验证的步骤。
1.安装 Apache 实用程序
我们需要使用 htpasswd 实用程序来设置基本身份验证。 为此,我们需要安装 apache2-utils 或 httpd-tools。 打开终端并运行以下命令
# yum install httpd-tools [RHEL/CentOS] $ sudo apt install apache2-utils [Debian/Ubuntu]
另请阅读:如何在 NGINX 上安装 Let’s Encrypt
2. 创建用户/密码
接下来,运行 htpasswd 命令来创建一个用户,该用户将被授予访问您网站的权限。
# htpasswd -c /etc/nginx/conf.d/.htpasswd developer
我们使用 -c 选项来指定密码文件位置。 当您按 Enter 时,系统将提示您输入密码。
例如,当我们创建另一个用户时,我们不指定密码文件位置。
# htpasswd /etc/nginx/conf.d/.htpasswd developer2
另请阅读:在 NGINX 中重定向与重写
3.打开NGINX配置文件
打开终端并运行以下命令打开 NGINX 服务器配置文件。
$ sudo vi /etc/nginx/nginx.conf
如果您为您的网站(例如 www.example.com)配置了单独的虚拟主机,例如 /etc/nginx/sites-enabled/website.conf 然后使用以下命令打开其配置
$ sudo vi /etc/nginx/sites-enabled/website.conf
或者,您也可以打开默认的虚拟主机配置文件。
$ sudo vi /etc/nginx/sites-enabled/default
另请阅读:如何在 NGINX 中创建自定义 404 页面
4. 密码保护NGINX
为了密码保护您的网站或某些网页,我们需要在 NGINX 服务器配置中使用 auth_basic 和 auth_basic_user_file 指令。
例如,如果要为虚拟主机(整个 http 块)配置基本身份验证,请在 http 块中添加上述两个指令,如下所示。
http{ ... auth_basic "Restricted Access!"; auth_basic_user_file /etc/nginx/conf.d/.htpasswd; ... }
在上面的代码中,我们在 auth_basic_user_file 指令中指定了密码文件的路径,在 auth_basic 指令中指定了要显示的消息。
同样,这里是保护服务器块的代码,即实现网站或域的基本身份验证。
server{ ... auth_basic "Restricted Access!"; auth_basic_user_file /etc/nginx/conf.d/.htpasswd; ... }
您还可以为特定网页/子目录配置基本身份验证(例如 /admin) 通过在位置块中添加 auth_basic 和 auth_basic_user_file 指令。
location /admin/ { ... auth_basic "Restricted Access!"; auth_basic_user_file /etc/nginx/conf.d/.htpasswd; ... }
另请阅读:如何在 NGINX 中限制下载速度
5.重启NGINX服务器
运行以下命令以检查更新的配置文件的语法。
$ sudo nginx -t
如果没有错误,请运行以下命令重新启动 NGINX 服务器。
$ sudo service nginx reload #debian/ubuntu $ systemctl restart nginx #redhat/centos
另请阅读:如何在 NGINX 中启用 GZIP 压缩
6. 验证基本身份验证
打开浏览器并访问 URL(例如 www.example.com/admin) 你已经保护了。 您应该会看到如下所示的身份验证屏幕。
CodePre 可以轻松地将数据可视化,并在实时仪表板中对其进行监控。 免费试用 CodePre。