nginx 下为访问页面增加身份认证

我有一些网站,只想给自己和自己的朋友看,所以需要加密,加上访问认证。只有知道用户名和密码的人才能访问自己的网站。

准备工作

能看到这篇文章的,大都安装过 Nginx 了吧。如果没有安装过,那你就需要安装 Nginx 了。

生成加密过的密码

使用 openssl 生成加密过的密码:

1
openssl passwd

接下来会提示输入密码,连续输入两次后就能得到加密后的密码了,如:

1
D89diuh3du23d

此时把加密的密码复制下来,供后面使用。

创建认证文件

后面在 nginx 设置中对眼身份认证,需要指定一个存有用户名和密码的文件,所以这里首先创建。
为防止出现权限问题,将文件创建到 nginx 配置目录下,文件名为 passwd

1
nano /usr/local/nginx/conf/passwd

在文件中写入

1
admin:D89diuh3du23d

其中 admin 即设置的验证用户名,可随意更改,不需要再次加密。

修改 nginx 配置文件

打开 nginx 配置文件

1
nano /usr/local/nginx/conf/vhost/blog.itnote.me.conf

增加一个 location,如:

1
2
3
4
5
6
7
8
9
10
server {
. . .

location / {
auth_basic "Admin Login";
auth_basic_user_file /etc/nginx/pma_pass;
}

. . .
}

在此 location 下填入认证提示,并指明认证文件路径
auth_basic 中字符串内容用在认证界面的提示中,如果不希望别人知道这个网页的用途的话,就写一个无关紧要的 Admin Login。

重启 nginx 生效

重启 nginx

1
service nginx restart

参考文章

本文大部分内容转载自:nginx 下为访问页面增加身份认证

坚持原创技术分享,您的支持将鼓励我继续创作!