您的位置:首页 > 运维架构 > Nginx

Nginx_日志文件讲解

2019-05-15 14:13 1576 查看
[code]刚才说了虚拟主机配置了,咱们的配置文件里有什么啊,这个不可能都讲的非常详细,一带而过,略一下,然后说一下

日志访问的配置文件吧

[code]其实在nginx的logs下呢,有一个日志文件,咱们去看一下,我当前这个nginx肯定是开启的,为ps -ef|grep nginx

[code]刚才我们看了conf了,里面有一个文件,我们看logs,cd到logs里,这个pid就不说了

[code]运行的时候都会产生一个pid,相当于会产生一个进程,比如我刚才说的这块

[code]会产生一个进程,这个进程就存在这个文件里,cat nginx.pid,你会看到他和他长得一样

[code]咱们去stop的时候,去查nginx.pid这个文件,其实也是一个文件,去读取3472这个进程号,然后去把他kill掉,这个是很常用的

一种方式,比如我们以后要去做集成的时候,你要开启一些服务,咱们也会生成一些服务的进程文件,什么什么service.pid,

然后这个pid存储当前服务的开启的进程,然后我想把这个服务kill掉的时候,先去找这个配置文件,然后去读这个进程号,

然后去cat出来,然后去kill,这个能理解吧,这个是很常用的方式,不说这个事了,这个error.log是一个错误日志,

access.log就是正确的日志,那我可以去tail一下,tail -f -n 100

[code]这里面有这么多,一大堆,到底是啥啊,就是访问日志,就是你客户端去访问我,进入的时候,就是进入nginx服务端的时候,

输出的一些日志,他这个会有很多次,删除之后会生成这个文件

[code]现在这个里面是没有的,那我先再去tail一下,tail -f -n 100 access.log,现在肯定是没有的,咱们再cd conf下

我说了配置文件也可以去指定日志的,vim nginx.conf,之前这里有一个access.log,这个access log是指定了配置,

配置文件放在什么地方

[code]当然是根据相对的路径,叫做access.log,其实咱们也可以来一个,你比如说我现在要修改,我现在也想产生一个log,

当然他里面有三个,第一个是ke表示access_log,位置我也给他放在这下面吧,logs下面,我就不叫host,bhz.com.access.log,

然后日志的格式指定为main的格式,main的格式其实一个全局的格式,在这里其实也是nginx默认

[code]我把这个注释放开,log_format有一个类型叫main,那么我把它放开了以后

[code]就是上面那一堆的main,和这块是对应上的,那也就是说我在记录日志的时候,记录到这个文件里,日志要以什么样的格式

记录到文件里,要以main这种格式,除了main以外你可以定义其他的格式,我这个main格式是这样的,这里有一些nginx的一些变量,

比如remote_address,你客户端访问我nginx服务器的时候,你给我绑定的客户端的ip是什么,然后就是横杆,然后就是remote_user,

就是客户端的用户名是什么,一旦没有了就是空格了,还有请求request,以及status,还有body_byte字节,状态,发过来的字节数,

然后还有一些http_referer,上一次的http的地址,你的referer是什么,你接触过html应该知道,就是一些防盗链的时候,要用到

refer这个东西,如果不懂的话,你就百度一下这个东西,比如说你这个网站吗,总会统计一下你通过什么方式进入我这个网站,

比如百度,搜狗,360,什么什么东西其他,有通过百度这个网站,通过百度查询进来查询到我这个网站,100次,通过360查的可能

有300次,通过什么搜狗什么300次,这个其实取的是referer,你访问我这个网站之前,你那个页面停留的URL,给我抓取到,

user_agen浏览器,x_forward转向的东西,总之这是一个日志的格式,你可以自己取名,可以自定义,这些都是nginx自己内置

提供的变量,感觉有点像PHP,就是用$符号,变量的声明,然后加上名字,罗嗦了一大堆,解释清楚了,这样去配呢,在访问bhz.com的

时候,访问这个域名的时候,访问这个1234端口的时候你要给我记录日志

[code]
就是访问这个语句记录的日志都放在这个文件里,就是这样一个意思,你比如这上面我还可以做这样的一个事情

我再来,你应该有不同的域名记录不同的日志,这是我当然需要记录的一个功能,你比如我去掉

[code]就是logs里的文件给删了,现在也加上,如果我是默认的去敲70的时候,我敲70的时候,访问的是这个location,然后是

访问欢迎界面,如果我是敲1234这个域名的时候,应该是我刚才自己写的index.html,我两个访问的是不同的地方,你可以这么去理解,

虽然都是访问nginx代理服务器,那么他应该给我记录两次日志,返回我自己的ip,应该是两个不同的日志记录文件,说完这个我们保存

退出,然后去reload一下

[code]这个咱们主要是去cd到logs下,看一下

[code]他直接给我生成了这两个文件了,这是没问题的,你去cat一下access,里面什么也没有

[code]比如tail -n 100 -f access.log,我是动态的去监控,现在是空的,我现在去访问http:192.168.1.114:70

[code]你会发现他下面就多了这么一个东西

[code]我再访问一次,他没有,啥原因啊

[code]又缓存,你把缓存清了就行了,我把缓存清了再次去访问的时候,就来了第二次了,

 

[code]如果你不需要缓存,每次都是发起一次新的请求,其实挺简单的,根据你不同的浏览器他都会设置,你如果是firefox的话,

你可以去做一个缓存的设置,chrome也可以设置,你去百度查一查,我可以去firefox上去敲about:config

[code]找到这个选项

[code]然后默认值是3,3代表什么意思呢,这里面说的很清楚

[code]3是auto,我们要改成each time,每次访问的时候不留缓存,这是咱们开发最习惯的了,你别给我留缓存,我改了一个jsp,

改了一个文件,结果你还是给我读之前没有改过的缓存了,一般开发模式的时候,选择1最好,我们在这里改成1

[code]改成1以后读取就不会有问题了,我再次去清理一下缓存,我把这个文件直接删掉

[code]现在没有刚才的那个文件了,我再刷一下

[code]刷一下不给我生成这个文件,那我就的reload一下

[code]重新去reload一下,这个就有了,但是这个里面应该是空的

[code]咱们就去刷几次吧,刷一次他就有一个,我再刷一次再来一个,现在就不记录这个缓存了,就正常了

[code]看一下这个里面的内容吧,基本上就是你当前的IP,当前我这个windows,这台机器,我这个IP肯定是192.168.1.200,然后我这里

有一个空格,就是user,还有时间啊,然后你这个请求是什么啊,状态304,然后你用的内核,Mozillia/5.0,这个只是一个内核,所有的

浏览器都叫这个名字,主要是看后面这块,user_agent,firefox/45.0,横杠后面是空的,你得对照这去看,这么去说有点苍白,

cd /usr/local/nginx/conf/ vim nginx.conf

咱们找到上面这一堆

[code]你自己对号入座吧,我这里是一个user_agent,然后还有这么一个东西,你自己去对比一下,第一个肯定是代表着我的remote_addr

有一个杠,然后remote_user,然后他这个也没有,你自己去对号入座,通过什么样的方式进来的,这个很简单,不说了,我现在再去

监控另外一个文件,就是咱们这个文件 tail -n 100 -f access.log,它里面也是没有任何内容的

[code]然后我还是回来敲这个,这个域名我自己的,bhz.com:1234

[code]进来了一次,你会发现,这里是不是有一次了

[code]我现在用的是这个日志,我再来一次,是不是有第二次了,我再访问一次,第三次,反正就是没问题

[code]这个就充分体现了nginx,能帮我做到一个什么事啊,就是日志的区分,根据你不同的配置,不同的服务器,进入到日志

可以去做区分,这个其实是非常有必要的,vim nginx.cof,刚才介绍了关于日志的说明,就是这个,access_log,我上了

这个,这都很简单

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: