有时候我们的网站仅仅是为了提供简单的查询服务,但是又要保密,这时候如果写一个认证服务又没什么必要,这时候使用 Nginx 的“约束访问”功能可以轻松地实现基本认证服务。

开启认证

简单地更改 Nginx 的配置文件便可开启认证。

auth_basic "restircted";#启用http基本认证,以字符串作为域的名字。
auth_basic_user_file conf/htpasswd;#认证文件的位置,这里要特别注意,否则会发生403错误

生成认证文件

认证文件的格式是username:password:commentpassword部分需加密处理,comment部分为可选部分。

使用htpasswd生成认证文件

apache 提供了一个htpasswd命令用来生成认证密钥。如果没有这个命令,需要先安装这个工具。

 yum install httpd-tools-2.4.6-67.el7.centos.x86_64

然后使用这个命令生成密钥文件

# cd conf
# htpasswd -c -d htpasswd username

根据系统提示输入两次密码便完成了文件的生成。

使用PHP生成认证文件

>>> $password = crypt("password", base64_encode("password")); //第二个参数是盐值,随机两个字母即可
>>> file_put_contents("htpasswd", "username:$password")

完成以上步骤,便可在网站中使用 http 基本认证了。

原文发表于Nginx 开启基本 http 认证,转载请注明出处。


小狗快跑嘟嘟
2.8k 声望19 粉丝

探索,是认识这个世界的唯一方式。