nginx②
1.0 Nginx访问认证
有时,在实际工作中企业要求我们为网站设置访问账号和密码权限,这样操作后,只有拥有账号密码的用户才可以访问网站内容。
这种使用账号密码才可以访问网站的功能主要应用在企业内部人员访问的地址上,例如:企业网站后台,MySQL客户端phpmyadmin,企业内部的CRM,WIKI网站平台。
1.1 创建密码文件
我们可以借用apache的htpasswd软件,来创建加密的账号和密码
查询有无软件:which htpasswd
装软件包以后就有htpasswd这个命令了:yum -y install httpd
创建用户和密码:htpasswd -bc /usr/local/nginx/conf/htpasswd yunjisuan 123123
创建成功后提示:Adding password for user yunjisuan
cat /usr/local/nginx/conf/htpasswd
yunjisuan:FC1/eEc/iK0Mo #账号密码是加密的(htpasswd是文件的名字)
1.2 在虚拟主机配置文件里加入两条配置信息
[root@localhost html]# cat /usr/local/nginx/conf/extra/blog.conf
server {
listen 80;
server_name blog.yunjisuan.com;
location / {
root /var/www/html/blogcom;
index index.html index.htm;
auth_basic "yunjisuan training"; #加入这条配置
auth_basic_user_file /usr/local/nginx/conf/htpasswd; #加入这条配置
}
}
#配置解释:
auth_basic :验证的基本信息选项(后边跟着的双引号里就是验证窗口的名字)
auth_basic_user_file :验证的用户文件(后边根账号密码文件的绝对路径)
然后重启:
浏览器输入URL请求,就会弹出auth_basic里的验证信息。输入用户密码,就登陆成功。
1.3Tengine和Nginx是什么关系?
Tengine是淘宝开源Nginx的分支,官方站点为http://tengine.taobao.org/
1.4访问Nginx时出现状态码“403 forbidden”的原因
(1)Nginx配置文件里没有配置默认首页参数,或者首页文件在站点目录下没有如下内容:
index index.php index.html index.htm;
(2)站点目录或内部的程序文件没有Nginx用户访问权限
(3)Nginx配置文件中设置了allow,deny等权限控制,导致客户端没有访问权限。