Nginx_日志文件讲解
生活随笔
收集整理的這篇文章主要介紹了
Nginx_日志文件讲解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
剛才說了虛擬主機配置了,咱們的配置文件里有什么啊,這個不可能都講的非常詳細,一帶而過,略一下,然后說一下日志訪問的配置文件吧
其實在nginx的logs下呢,有一個日志文件,咱們去看一下,我當前這個nginx肯定是開啟的,為ps -ef|grep nginx
剛才我們看了conf了,里面有一個文件,我們看logs,cd到logs里,這個pid就不說了
運行的時候都會產生一個pid,相當于會產生一個進程,比如我剛才說的這塊
會產生一個進程,這個進程就存在這個文件里,cat nginx.pid,你會看到他和他長得一樣
咱們去stop的時候,去查nginx.pid這個文件,其實也是一個文件,去讀取3472這個進程號,然后去把他kill掉,這個是很常用的一種方式,比如我們以后要去做集成的時候,你要開啟一些服務,咱們也會生成一些服務的進程文件,什么什么service.pid,然后這個pid存儲當前服務的開啟的進程,然后我想把這個服務kill掉的時候,先去找這個配置文件,然后去讀這個進程號,然后去cat出來,然后去kill,這個能理解吧,這個是很常用的方式,不說這個事了,這個error.log是一個錯誤日志,access.log就是正確的日志,那我可以去tail一下,tail -f -n 100
這里面有這么多,一大堆,到底是啥啊,就是訪問日志,就是你客戶端去訪問我,進入的時候,就是進入nginx服務端的時候,輸出的一些日志,他這個會有很多次,刪除之后會生成這個文件
現在這個里面是沒有的,那我先再去tail一下,tail -f -n 100 access.log,現在肯定是沒有的,咱們再cd conf下我說了配置文件也可以去指定日志的,vim nginx.conf,之前這里有一個access.log,這個access log是指定了配置,配置文件放在什么地方
當然是根據相對的路徑,叫做access.log,其實咱們也可以來一個,你比如說我現在要修改,我現在也想產生一個log,當然他里面有三個,第一個是ke表示access_log,位置我也給他放在這下面吧,logs下面,我就不叫host,bhz.com.access.log,然后日志的格式指定為main的格式,main的格式其實一個全局的格式,在這里其實也是nginx默認
我把這個注釋放開,log_format有一個類型叫main,那么我把它放開了以后
就是上面那一堆的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端口的時候你要給我記錄日志
就是訪問這個語句記錄的日志都放在這個文件里,就是這樣一個意思,你比如這上面我還可以做這樣的一個事情我再來,你應該有不同的域名記錄不同的日志,這是我當然需要記錄的一個功能,你比如我去掉
就是logs里的文件給刪了,現在也加上,如果我是默認的去敲70的時候,我敲70的時候,訪問的是這個location,然后是訪問歡迎界面,如果我是敲1234這個域名的時候,應該是我剛才自己寫的index.html,我兩個訪問的是不同的地方,你可以這么去理解,雖然都是訪問nginx代理服務器,那么他應該給我記錄兩次日志,返回我自己的ip,應該是兩個不同的日志記錄文件,說完這個我們保存退出,然后去reload一下
這個咱們主要是去cd到logs下,看一下
他直接給我生成了這兩個文件了,這是沒問題的,你去cat一下access,里面什么也沒有
比如tail -n 100 -f access.log,我是動態的去監控,現在是空的,我現在去訪問http:192.168.1.114:70
你會發現他下面就多了這么一個東西
我再訪問一次,他沒有,啥原因啊
又緩存,你把緩存清了就行了,我把緩存清了再次去訪問的時候,就來了第二次了,
?
如果你不需要緩存,每次都是發起一次新的請求,其實挺簡單的,根據你不同的瀏覽器他都會設置,你如果是firefox的話,你可以去做一個緩存的設置,chrome也可以設置,你去百度查一查,我可以去firefox上去敲about:config 找到這個選項 然后默認值是3,3代表什么意思呢,這里面說的很清楚 3是auto,我們要改成each time,每次訪問的時候不留緩存,這是咱們開發最習慣的了,你別給我留緩存,我改了一個jsp,改了一個文件,結果你還是給我讀之前沒有改過的緩存了,一般開發模式的時候,選擇1最好,我們在這里改成1 改成1以后讀取就不會有問題了,我再次去清理一下緩存,我把這個文件直接刪掉 現在沒有剛才的那個文件了,我再刷一下 刷一下不給我生成這個文件,那我就的reload一下 重新去reload一下,這個就有了,但是這個里面應該是空的 咱們就去刷幾次吧,刷一次他就有一個,我再刷一次再來一個,現在就不記錄這個緩存了,就正常了 看一下這個里面的內容吧,基本上就是你當前的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咱們找到上面這一堆 你自己對號入座吧,我這里是一個user_agent,然后還有這么一個東西,你自己去對比一下,第一個肯定是代表著我的remote_addr有一個杠,然后remote_user,然后他這個也沒有,你自己去對號入座,通過什么樣的方式進來的,這個很簡單,不說了,我現在再去監控另外一個文件,就是咱們這個文件 tail -n 100 -f access.log,它里面也是沒有任何內容的 然后我還是回來敲這個,這個域名我自己的,bhz.com:1234 進來了一次,你會發現,這里是不是有一次了 我現在用的是這個日志,我再來一次,是不是有第二次了,我再訪問一次,第三次,反正就是沒問題 這個就充分體現了nginx,能幫我做到一個什么事啊,就是日志的區分,根據你不同的配置,不同的服務器,進入到日志可以去做區分,這個其實是非常有必要的,vim nginx.cof,剛才介紹了關于日志的說明,就是這個,access_log,我上了這個,這都很簡單?
總結
以上是生活随笔為你收集整理的Nginx_日志文件讲解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nginx_虚拟主机配置讲解
- 下一篇: 日志文件切分讲解