Nginx日志管理介紹
Nginx日志描述
通過(guò)訪問(wèn)日志,你可以得到用戶(hù)地域來(lái)源、跳轉(zhuǎn)來(lái)源、使用終端、某個(gè)URL訪問(wèn)量等相關(guān)信息;通過(guò)錯(cuò)誤日志,你可以得到系統(tǒng)某個(gè)服務(wù)或server的性能瓶頸等。因此,將日志好好利用,你可以得到很多有價(jià)值的信息。
參數(shù)明細(xì)表:
$remote_addr | 客戶(hù)端的ip地址(代理服務(wù)器,顯示代理服務(wù)ip) |
$remote_user | 用于記錄遠(yuǎn)程客戶(hù)端的用戶(hù)名稱(chēng)(一般為“-”) |
$time_local | 用于記錄訪問(wèn)時(shí)間和時(shí)區(qū) |
$request | 用于記錄請(qǐng)求的url以及請(qǐng)求方法 |
$status | 響應(yīng)狀態(tài)碼,例如:200成功、404頁(yè)面找不到等。 |
$body_bytes_sent | 給客戶(hù)端發(fā)送的文件主體內(nèi)容字節(jié)數(shù) |
$http_user_agent | 用戶(hù)所使用的代理(一般為瀏覽器) |
$http_x_forwarded_for | 可以記錄客戶(hù)端IP,通過(guò)代理服務(wù)器來(lái)記錄客戶(hù)端的ip地址 |
$http_referer | 可以記錄用戶(hù)是從哪個(gè)鏈接訪問(wèn)過(guò)來(lái)的 |
Nginx日志分隔
nginx的日志文件沒(méi)有rotate功能。編寫(xiě)每天生成一個(gè)日志,我們可以寫(xiě)一個(gè)nginx日志切割腳本來(lái)自動(dòng)切割日志文件。
第一步就是重命名日志文件,不用擔(dān)心重命名后nginx找不到日志文件而丟失日志。在你未重新打開(kāi)原名字的日志文件前,nginx還是會(huì)向你重命名的文件寫(xiě)日志,Linux是靠文件描述符而不是文件名定位文件。
第二步向nginx主進(jìn)程發(fā)送USR1信號(hào)。nginx主進(jìn)程接到信號(hào)后會(huì)從配置文件中讀取日志文件名稱(chēng),重新打開(kāi)日志文件(以配置文件中的日志名稱(chēng)命名),并以工作進(jìn)程的用戶(hù)作為日志文件的所有者。重新打開(kāi)日志文件后,nginx主進(jìn)程會(huì)關(guān)閉重名的日志文件并通知工作進(jìn)程使用新打開(kāi)的日志文件。工作進(jìn)程立刻打開(kāi)新的日志文件并關(guān)閉重名名的日志文件。然后你就可以處理舊的日志文件了。[或者重啟nginx服務(wù)]。
Nginx日志格式
打開(kāi)nginx.conf配置文件:vim /usr/local/nginx/conf/nginx.conf
查看Nginx的nginx.conf文件,可以看到這樣一條信息
#access_log logs/access.log main;
這說(shuō)明該server訪問(wèn)日志的文件是 logs/host.access.log,使用的格式”main”格式。
日志生成的到Nginx根目錄logs/access.log文件,默認(rèn)使用“main”日志格式,也可以自定義格式。
main格式
#log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #參數(shù)解釋 $remote_addr 客戶(hù)端IP地址; $remote_user 客戶(hù)端用戶(hù)名; $time_local 訪問(wèn)的時(shí)間和時(shí)區(qū); $request 訪問(wèn)請(qǐng)求的類(lèi)型,POST或者GET; $status 記錄請(qǐng)求狀態(tài),404、304、200等等; $body_bytes_sent 客戶(hù)端給服務(wù)器發(fā)送的文件主體內(nèi)容的大??; $http_referer 訪問(wèn)來(lái)源——從哪個(gè)鏈接過(guò)來(lái)的; $http_user_agent 用戶(hù)代理信息,一般是瀏覽器的標(biāo)記,有時(shí)候也是爬蟲(chóng)標(biāo)記。 $http_x_forwarded_for 直接訪問(wèn)該服務(wù)器的IP地址,可能是客戶(hù)端IP也可能是代理服務(wù)器IP #應(yīng)用main格式的日志實(shí)例 47.97.66.214 - - [05/May/2018:02:18:26 +0800] "GET /solr/ HTTP/1.1" 404 571 "http://44.186.245.237/solr/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, li Gecko) Chrome/59.0.3071.115 Safari/537.36" 47.97.66.214 - - [05/May/2018:02:18:26 +0800] "GET /wcm/ HTTP/1.1" 404 571 "http://44.186.245.237/wcm/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, li Gecko) Chrome/59.0.3071.115 Safari/537.36" 80.82.78.50 - - [05/May/2018:03:53:56 +0800] "GET http://www.baidu.com/ HTTP/1.1" 404 169 "-" "Mozilla" 112.193.171.197 - - [05/May/2018:06:52:06 +0800] "GET http://www.rfa.org/ HTTP/1.1" 200 462 "-" "python-requests/2.6.0 CPython/2.7.5 Linux/3.10.0-693.11.1.el7.x86_64"
除了main格式,你可以自定義其他格式,只需要把上述參數(shù)重新組合即可。
nginx的默認(rèn)log存放在logs/access.log里,但也允許針對(duì)不同的server做不同的log,只需要在對(duì)應(yīng)server下加入如下語(yǔ)句
access_log logs/access_8080.log mylog; #聲明一個(gè)log #log存放目錄和名稱(chēng) #log格式(可自定義)
修改nginx.conf之后需要重啟Nginx才能使配置生效
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- nginx信號(hào)集案例詳解
- 詳解CentOS配置Nginx官方的Yum源
- Linux系統(tǒng)下為Nginx安裝多版本PHP
- Centos7安裝PHP及Nginx的教程詳解
- 一段萬(wàn)能的nginx接口實(shí)現(xiàn)反向代理配置
- 解決vue項(xiàng)目nginx部署到非根目錄下刷新空白的問(wèn)題
- Nginx的安裝和多域名配置的實(shí)現(xiàn)方法
- 開(kāi)啟Nginx時(shí)端口被占用提示:Address already in use
- docker nginx 運(yùn)行后無(wú)法訪問(wèn)的問(wèn)題解決
- 如何通過(guò)nginx負(fù)載均衡跳轉(zhuǎn)https
- Nginx的信號(hào)控制
相關(guān)文章
Nginx 出現(xiàn) 403 Forbidden 最終解決方法
這篇文章給大家介紹了Nginx 出現(xiàn) 403 Forbidden 最終解決方法,下面分步驟給大家介紹的非常詳細(xì),感興趣的的朋友一起看看吧2017-08-08shell腳本定時(shí)統(tǒng)計(jì)Nginx下access.log的PV并發(fā)送給API保存到數(shù)據(jù)庫(kù)
這篇文章主要介紹了shell腳本定時(shí)統(tǒng)計(jì)Nginx下access.log的PV并發(fā)送給API保存到數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法 ,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09Crontab+Shell做Nginx日志切割腳本實(shí)例代碼
本篇文章主要介紹了Crontab+Shell做Nginx日志切割腳本實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05nginx?某些url只能由特定ip訪問(wèn)的實(shí)現(xiàn)
在Nginx中針對(duì)某些URL只允許特定IP地址訪問(wèn),本文就來(lái)介紹一下如何實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09Nginx 502 bad gateway和Nginx 504 Gateway Time-out錯(cuò)誤解決方法 錯(cuò)誤解決辦
Nginx 502 Bad Gateway的含義是請(qǐng)求的PHP-CGI已經(jīng)執(zhí)行,但是由于某種原因(一般是讀取資源的問(wèn)題)沒(méi)有執(zhí)行完畢而導(dǎo)致PHP-CGI進(jìn)程終止2012-09-09Nginx中return和rewrite的寫(xiě)法及區(qū)別淺析
在Nginx中,return和rewrite都用于重定向,但有所區(qū)別,return立即終止請(qǐng)求并返回指定HTTP狀態(tài)碼,不額外請(qǐng)求,rewrite則重寫(xiě)URI并引發(fā)新請(qǐng)求,需要的朋友可以參考下2024-09-09