问题1:tegine和Nginx是什么关系?
tegine是淘宝开源Nginx的分支,官方站点为http://tegine.taobao.org/。
问题2:Nginx网站出现403forbidden的原因及故障模拟重现深入讲解
1)原因之一是Nginx配置文件的index参数里没有指定默认首页文件名,下面是Nginx配置文件里指定默认首页的参数。
index index.html index.htm; ---不同的首页文件用空格分隔,按顺序生效
问题模拟示例:
[root@web01 conf]# cat extra/01_www.conf
server {
listen 80;
server_name www.etiantian.org etiantian.org;
location / {
root html/www;
#index index.html index.htm; ---注释首页文件参数配置
}
access_log logs/access_www.log main gzip buffer=12k flush=5s;
}
[root@web01 conf]# nginx -t
nginx: the configuration file /application/nginx-1.16.0//conf/nginx.conf syntax is ok
nginx: configuration file /application/nginx-1.16.0//conf/nginx.conf test is successful
[root@web01 conf]# nginx -s reload
[root@web01 conf]# tail -1 /etc/hosts
192.168.9.7 www.etiantian.org bbs.etiantian.org blog.etiantian.org etiantian.org
[root@web01 conf]# ll ../html/www/
总用量 4
drwxr-xr-x 2 root root 25 3月 23 13:46 blog
-rw-r--r-- 1 root root 25 3月 22 11:37 index.html ---存在首页文件
[root@web01 conf]# curl -I -s 192.168.9.7|head -1
HTTP/1.1 403 Forbidden ---问题是,Nginx没有指定首页文件的参数,因此访问Nginx时不会把index.html当首页,所以报403错误。
2)原因之二是网站站点目录下没有配置文件index参数里指定的首页文件index.html或index.htm。
[root@web01 conf]# cat extra/01_www.conf
server {
listen 80;
server_name www.etiantian.org etiantian.org;
location / {
root html/www;
index index.html index.htm; ---配置首页文件配置
}
access_log logs/access_www.log main gzip buffer=12k flush=5s;
}
[root@web01 conf]# nginx -t
nginx: the configuration file /application/nginx-1.16.0//conf/nginx.conf syntax is ok
nginx: configuration file /application/nginx-1.16.0//conf/nginx.conf test is successful
[root@web01 conf]# nginx -s reload
[root@web01 conf]# mv ../html/www/index.html{,.bak} ---暂时移除站点目录下的物理首页文件
[root@web01 conf]# curl -I -s 192.168.9.7|head -1
HTTP/1.1 403 Forbidden ---问题是,Nginx有指定首页文件的参数,并且也指定了首页文件,但是首页文件不存在,所以报403错误。
以上两个403的原因除了正确配置解决外,还可以通过一个参数来解决,就是:
autoindex on; ---当找不到首页文件时,会展示目录结构,这个功能一般用于下载,如阿里云镜像站点。
示例如下:
[root@web01 conf]# cat extra/01_www.conf
server {
listen 80;
server_name www.etiantian.org etiantian.org;
location / {
root html/www;
index index.html index.htm;
autoindex on;
}
access_log logs/access_www.log main gzip buffer=12k flush=5s;
}
当不配置index首页时,模式图如下图所示。
配置Nginx实现下载模式图3)原因之三是站点目录或内部的程序文件没有Nginx的用户访问权限。
[root@web01 conf]# echo test > ../html/www/index.html
[root@web01 conf]# chmod 700 ../html/www/index.html ---设置700让Nginx用户无权读取
[root@web01 conf]# ls -l ../html/www/index.html
-rwx------ 1 root root 5 3月 25 10:29 ../html/www/index.html
[root@web01 conf]# curl -I -s 192.168.9.7|head -1
HTTP/1.1 403 Forbidden ---403报错
[root@web01 conf]# chmod 755 ../html/www/index.html ---设置755让Nginx用户有权读取
[root@web01 conf]# curl -I -s 192.168.9.7|head -1
HTTP/1.1 200 OK
4)原因之四是Nginx配置文件中设置allow、deny等权限控制,导致客户端没有权限访问。
[root@web01 conf]# cat extra/01_www.conf
server {
listen 80;
server_name www.etiantian.org etiantian.org;
location / {
root html/www;
index index.html index.htm;
allow 192.168.8.0/24;
deny all;
}
access_log logs/access_www.log main gzip buffer=12k flush=5s;
}
[root@web01 conf]# curl -I -s 192.168.9.7|head -1
HTTP/1.1 200 OK
[root@web01 conf]# nginx -t
nginx: the configuration file /application/nginx-1.16.0//conf/nginx.conf syntax is ok
nginx: configuration file /application/nginx-1.16.0//conf/nginx.conf test is successful
[root@web01 conf]# nginx -s reload
[root@web01 conf]# curl -I -s 192.168.9.7|head -1
HTTP/1.1 403 Forbidden
网友评论