nginx常见日志收集及分析工具有rsyslog,awstats,flume,elk,storm等
1 nginx location作用:
location指令的作用是可以根据用户请求的URL来执行不同的应用,就是根据用户请求的网站地址URL匹配,匹配成功即进行相关的操作。
2 location语法
location[=|`||`*|]
<code>[root@web01 scripts]</code><code># cd /application/nginx/conf/</code>
<code>[root@web01 extra]</code><code># vim www.conf</code>
<code> </code><code>server {</code>
<code> </code><code>listen 80;</code>
<code> </code><code>server_name www.etiantian.org etiantian.org;</code>
<code> </code><code>location / {</code>
<code> </code><code>return</code> <code>401;</code>
<code> </code><code>}</code>
<code> </code><code>location = / {</code>
<code> </code><code>return</code> <code>402;</code>
<code> </code><code>location </code><code>/documents/</code> <code>{</code>
<code> </code><code>return</code> <code>403;</code>
<code> </code><code>location ^~ </code><code>/images/</code> <code>{</code>
<code> </code><code>return</code> <code>404;</code>
<code> </code><code>location ~* \.(gif|jpg|jpeg)$ {</code>
<code> </code><code>return</code> <code>500;</code>
<code> </code><code>#access_log logs/www_access.log main;</code>
<code>[root@web01 extra]</code><code># /application/nginx/sbin/nginx -t</code>
<code>nginx: the configuration </code><code>file</code> <code>/application/nginx-1</code><code>.6.3</code><code>//conf/nginx</code><code>.conf syntax is ok</code>
<code>nginx: configuration </code><code>file</code> <code>/application/nginx-1</code><code>.6.3</code><code>//conf/nginx</code><code>.conf </code><code>test</code> <code>is successful</code>
<code>[root@web01 extra]</code><code># /application/nginx/sbin/nginx -s reload</code>
加上注释172.16.1.8 web01 www.etiantian.org
<code>[root@web01 extra]</code><code># vim /etc/hosts</code>
<code>127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4</code>
<code>::1 localhost localhost.localdomain localhost6 localhost6.localdomain6</code>
<code>172.16.1.5 lb01</code>
<code>172.16.1.6 lb01</code>
<code>172.16.1.7 web02</code>
<code>172.16.1.8 web01 www.etiantian.org</code>
<code>172.16.1.51 de01 db01.etiantian.org</code>
<code>172.16.1.31 nfs01</code>
<code>172.16.1.41 backup</code>
<code>172.16.1.61 m01</code>
<code>[root@web01 extra]</code><code># ping www.etiantian.org -c4</code>
<code>PING web01 (172.16.1.8) 56(84) bytes of data.</code>
<code>64 bytes from web01 (172.16.1.8): icmp_seq=1 ttl=64 </code><code>time</code><code>=0.031 ms</code>
<code>64 bytes from web01 (172.16.1.8): icmp_seq=2 ttl=64 </code><code>time</code><code>=0.033 ms</code>
<code>64 bytes from web01 (172.16.1.8): icmp_seq=3 ttl=64 </code><code>time</code><code>=0.030 ms</code>
<code>64 bytes from web01 (172.16.1.8): icmp_seq=4 ttl=64 </code><code>time</code><code>=0.031 ms</code>
<code>--- web01 </code><code>ping</code> <code>statistics ---</code>
<code>4 packets transmitted, 4 received, 0% packet loss, </code><code>time</code> <code>2999ms</code>
<code>rtt min</code><code>/avg/max/mdev</code> <code>= 0.030</code><code>/0</code><code>.031</code><code>/0</code><code>.033</code><code>/0</code><code>.004 ms</code>
curl 一下
<code>[root@web01 extra]</code><code># curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org</code>
<code>402</code>
<code>[root@web01 extra]</code><code># cp www.conf{,.test.location}</code>
<code> </code><code>#location = / {</code>
<code> </code><code>#return 402;</code>
<code> </code><code>#}</code>
继续curl后出现结果如下:401
<code>[root@web01 extra]</code><code># ../../sbin/nginx -s reload</code>
<code>401</code>
<code>[root@web01 extra]</code><code># curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org/index.html</code>
<code>[root@web01 extra]</code><code># curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org/documents/document.html</code>
<code>403</code>
<code>[root@web01 extra]</code><code># curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org/images/1.gif</code>
<code>404</code>
<code>[root@web01 extra]</code><code># curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org/test/1.gif</code>
<code>500</code>
匹配顺序:
<a href="https://s1.51cto.com/wyfs02/M02/9F/0F/wKioL1mbBimQwyElAABpDJWwu9o892.jpg" target="_blank"></a>
<a href="https://s2.51cto.com/wyfs02/M01/00/5F/wKiom1mbBjKjKiPHAABNlroeFow948.jpg" target="_blank"></a>
<a href="https://s5.51cto.com/wyfs02/M00/9F/0F/wKioL1mbBivjmFKtAABRAM7-oqg298.jpg" target="_blank"></a>
<a href="https://s3.51cto.com/wyfs02/M01/00/5F/wKiom1mbBjShdpAsAABHsrinSXo055.jpg" target="_blank"></a>
<a href="https://s2.51cto.com/wyfs02/M00/9F/0F/wKioL1mbBi2QQB7kAABDsQJzOr4234.jpg" target="_blank"></a>
<a href="https://s1.51cto.com/wyfs02/M01/9F/0F/wKioL1mbBi_xgFkIAABUNFJCCLI922.jpg" target="_blank"></a>
<a href="https://s3.51cto.com/wyfs02/M02/00/5F/wKiom1mbBjii0OZrAACRvxsoPT4339.jpg" target="_blank"></a>
实战1:
配置好windowns客户端机的本地dns解析,然后输入地址:
如何让不报403?让返回结果为其他地址呢?
<code>[root@web01 extra]</code><code># vim </code>
<code>[root@web01 extra]</code><code># cat www.conf</code>
<code> </code><code>location / { </code>
<code> </code><code>root html</code><code>/www</code><code>; </code><code>#403修改为指定的地址</code>
<code> </code><code>index index.html; </code><code>#403修改为指定的地址 </code>
<code> </code><code>location ^~ </code><code>/images/</code> <code>{ </code>
<code>[root@web01 extra]</code><code># cd ../../html/www/</code>
<code>[root@web01 www]</code><code># mkdir documents</code>
<code>[root@web01 www]</code><code>#cd documents/</code>
<code>[root@web01 www]</code><code># echo doc >index.html</code>
<a href="https://s5.51cto.com/wyfs02/M02/00/5F/wKiom1mbCr3ze7rxAAA4VMMdcW4530.jpg" target="_blank"></a>
这就说明设置成功了。
本文转自sandshell博客51CTO博客,原文链接http://blog.51cto.com/sandshell/1958210如需转载请自行联系原作者
sandshell