您好,登錄后才能下訂單哦!
Nginx日志描述
通過訪問日志,你可以得到用戶地域來源、跳轉來源、使用終端、某個URL訪問量等相關信息;通過錯誤日志,你可以得到系統某個服務或server的性能瓶頸等。因此,將日志好好利用,你可以得到很多有價值的信息。
參數明細表:
$remote_addr | 客戶端的ip地址(代理服務器,顯示代理服務ip) |
$remote_user | 用于記錄遠程客戶端的用戶名稱(一般為“-”) |
$time_local | 用于記錄訪問時間和時區 |
$request | 用于記錄請求的url以及請求方法 |
$status | 響應狀態碼,例如:200成功、404頁面找不到等。 |
$body_bytes_sent | 給客戶端發送的文件主體內容字節數 |
$http_user_agent | 用戶所使用的代理(一般為瀏覽器) |
$http_x_forwarded_for | 可以記錄客戶端IP,通過代理服務器來記錄客戶端的ip地址 |
$http_referer | 可以記錄用戶是從哪個鏈接訪問過來的 |
Nginx日志分隔
nginx的日志文件沒有rotate功能。編寫每天生成一個日志,我們可以寫一個nginx日志切割腳本來自動切割日志文件。
第一步就是重命名日志文件,不用擔心重命名后nginx找不到日志文件而丟失日志。在你未重新打開原名字的日志文件前,nginx還是會向你重命名的文件寫日志,Linux是靠文件描述符而不是文件名定位文件。
第二步向nginx主進程發送USR1信號。nginx主進程接到信號后會從配置文件中讀取日志文件名稱,重新打開日志文件(以配置文件中的日志名稱命名),并以工作進程的用戶作為日志文件的所有者。重新打開日志文件后,nginx主進程會關閉重名的日志文件并通知工作進程使用新打開的日志文件。工作進程立刻打開新的日志文件并關閉重名名的日志文件。然后你就可以處理舊的日志文件了。[或者重啟nginx服務]。
Nginx日志格式
打開nginx.conf配置文件:vim /usr/local/nginx/conf/nginx.conf
查看Nginx的nginx.conf文件,可以看到這樣一條信息
#access_log logs/access.log main;
這說明該server訪問日志的文件是 logs/host.access.log,使用的格式”main”格式。
日志生成的到Nginx根目錄logs/access.log文件,默認使用“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"'; #參數解釋 $remote_addr 客戶端IP地址; $remote_user 客戶端用戶名; $time_local 訪問的時間和時區; $request 訪問請求的類型,POST或者GET; $status 記錄請求狀態,404、304、200等等; $body_bytes_sent 客戶端給服務器發送的文件主體內容的大小; $http_referer 訪問來源——從哪個鏈接過來的; $http_user_agent 用戶代理信息,一般是瀏覽器的標記,有時候也是爬蟲標記。 $http_x_forwarded_for 直接訪問該服務器的IP地址,可能是客戶端IP也可能是代理服務器IP #應用main格式的日志實例 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格式,你可以自定義其他格式,只需要把上述參數重新組合即可。
nginx的默認log存放在logs/access.log里,但也允許針對不同的server做不同的log,只需要在對應server下加入如下語句
access_log logs/access_8080.log mylog; #聲明一個log #log存放目錄和名稱 #log格式(可自定義)
修改nginx.conf之后需要重啟Nginx才能使配置生效
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對億速云的支持。如果你想了解更多相關內容請查看下面相關鏈接
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。