博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nginxlocation重要语法讲解及实践检验
阅读量:6280 次
发布时间:2019-06-22

本文共 3528 字,大约阅读时间需要 11 分钟。

nginx常见日志收集及分析工具有rsyslog,awstats,flume,elk,storm等

1    nginx location作用:

    location指令的作用是可以根据用户请求的URL来执行不同的应用,就是根据用户请求的网站地址URL匹配,匹配成功即进行相关的操作。

2    location语法

location[=|`||`*|]

1
[root@web01 scripts]
# cd /application/nginx/conf/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@web01 extra]
# vim www.conf
        
server {
        
listen       80;
        
server_name  www.etiantian.org etiantian.org;
        
location / {
        
return 
401;
        
}
        
location = / {
        
return 
402;
        
}
        
location 
/documents/ 
{
        
return 
403;
        
}
        
location ^~ 
/images/ 
{
        
return 
404;
        
}
        
location ~* \.(gif|jpg|jpeg)$ {
        
return 
500;
        
}
        
#access_log logs/www_access.log main;
        
}
1
2
3
4
[root@web01 extra]
# /application/nginx/sbin/nginx -t
nginx: the configuration 
file 
/application/nginx-1
.6.3
//conf/nginx
.conf syntax is ok
nginx: configuration 
file 
/application/nginx-1
.6.3
//conf/nginx
.conf 
test 
is successful
[root@web01 extra]
# /application/nginx/sbin/nginx -s reload

加上注释172.16.1.8      web01 www.etiantian.org

1
2
3
4
5
6
7
8
9
10
11
[root@web01 extra]
# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.1.5      lb01
172.16.1.6      lb01
172.16.1.7      web02
172.16.1.8      web01 www.etiantian.org
172.16.1.51     de01 db01.etiantian.org
172.16.1.31     nfs01
172.16.1.41     backup
172.16.1.61     m01
1
2
3
4
5
6
7
8
9
[root@web01 extra]
# ping www.etiantian.org -c4
PING web01 (172.16.1.8) 56(84) bytes of data.
64 bytes from web01 (172.16.1.8): icmp_seq=1 ttl=64 
time
=0.031 ms
64 bytes from web01 (172.16.1.8): icmp_seq=2 ttl=64 
time
=0.033 ms
64 bytes from web01 (172.16.1.8): icmp_seq=3 ttl=64 
time
=0.030 ms
64 bytes from web01 (172.16.1.8): icmp_seq=4 ttl=64 
time
=0.031 ms
--- web01 
ping 
statistics ---
4 packets transmitted, 4 received, 0% packet loss, 
time 
2999ms
rtt min
/avg/max/mdev 
= 0.030
/0
.031
/0
.033
/0
.004 ms

curl 一下

1
2
[root@web01 extra]
# curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org
402
1
[root@web01 extra]
# cp www.conf{,.test.location}

把 中的402注释掉如下:

1
2
3
        
#location = / {
        
#return 402;
        
#}

 继续curl后出现结果如下:401

1
2
3
[root@web01 extra]
# ../../sbin/nginx -s reload
[root@web01 extra]
# curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org
401
1
2
[root@web01 extra]
# curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org/index.html
401

 

1
2
[root@web01 extra]
# curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org/documents/document.html
403
1
2
[root@web01 extra]
# curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org/images/1.gif
404
1
2
[root@web01 extra]
# curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org/test/1.gif
500

  匹配顺序:

实战1:

配置好windowns客户端机的本地dns解析,然后输入地址:

    报错:403

 

如何让不报403?让返回结果为其他地址呢?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@web01 extra]
# vim 
[root@web01 extra]
# cat www.conf
        
server {
        
listen       80;
        
server_name  www.etiantian.org etiantian.org;
        
location / {  
        
return 
401;
        
}
        
#location = / {
        
#return 402;
        
#}
        
location 
/documents/ 
{
        
root html
/www
;            
#403修改为指定的地址
        
index index.html;         
#403修改为指定的地址   
        
}
        
location ^~ 
/images/ 
        
return 
404;
        
}
        
location ~* \.(gif|jpg|jpeg)$ {
        
return 
500;
        
}
        
#access_log logs/www_access.log main;
        
}
1
2
3
4
5
[root@web01 extra]
# ../../sbin/nginx -s reload
[root@web01 extra]
# cd ../../html/www/
[root@web01 www]
# mkdir documents
[root@web01 www]
#cd documents/
[root@web01 www]
# echo doc >index.html

windows 浏览器输入回车

这就说明设置成功了。

如果输入就是报错默认的错误

本文转自sandshell博客51CTO博客,原文链接http://blog.51cto.com/sandshell/1958210如需转载请自行联系原作者

sandshell

你可能感兴趣的文章
常用链接
查看>>
pitfall override private method
查看>>
!important 和 * ----hack
查看>>
聊天界面图文混排
查看>>
控件的拖动
查看>>
svn eclipse unable to load default svn client的解决办法
查看>>
Android.mk 文件语法详解
查看>>
QT liunx 工具下载
查看>>
内核源码树
查看>>
Java 5 特性 Instrumentation 实践
查看>>
AppScan使用
查看>>
Java NIO框架Netty教程(三) 字符串消息收发(转)
查看>>
Ucenter 会员同步登录通讯原理
查看>>
php--------获取当前时间、时间戳
查看>>
Spring MVC中文文档翻译发布
查看>>
docker centos环境部署tomcat
查看>>
JavaScript 基础(九): 条件 语句
查看>>
Linux系统固定IP配置
查看>>
配置Quartz
查看>>
Linux 线程实现机制分析
查看>>