有时候我们的网站仅仅是为了提供简单的查询服务,但是又要保密,这时候如果写一个认证服务又没什么必要,这时候使用 Nginx 的“约束访问”功能可以轻松地实现基本认证服务。
开启认证
简单地更改 Nginx 的配置文件便可开启认证。
auth_basic "restircted";#启用http基本认证,以字符串作为域的名字。
auth_basic_user_file conf/htpasswd;#认证文件的位置,这里要特别注意,否则会发生403错误
生成认证文件
认证文件的格式是username:password:comment
,password
部分需加密处理,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 认证,转载请注明出处。