詳解Nginx服務(wù)器中的日志相關(guān)配置
nginx 日志相關(guān)指令主要有兩條,
log_format,用來(lái)設(shè)置日志格式,
access_log,用來(lái)指定日志文件的存放路徑、格式和緩存大小
log_format 格式
log_format name( 格式名字) 格式樣式(即想要得到什么樣的日志內(nèi)容)
默認(rèn)的示例:
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_s ent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"']
#注釋:
$remote_addr 與$http_x_forwarded_for 用以記錄客戶端的ip地址;
$remote_user :用來(lái)記錄客戶端用戶名稱;
$time_local : 用來(lái)記錄訪問(wèn)時(shí)間與時(shí)區(qū);
$request : 用來(lái)記錄請(qǐng)求的url與http協(xié)議;
$status : 用來(lái)記錄請(qǐng)求狀態(tài);成功是200,
$body_bytes_s ent :記錄發(fā)送給客戶端文件主體內(nèi)容大??;
$http_referer :用來(lái)記錄從那個(gè)頁(yè)面鏈接訪問(wèn)過(guò)來(lái)的;
$http_user_agent :記錄客戶機(jī),瀏覽器的相關(guān)信息;
通常web服務(wù)器放在反向代理的后面,這樣就不能獲取到客戶的IP地址了,通過(guò)$remote_add拿到的IP地址是反向代理服務(wù)器的iP地址。反向代理服務(wù)器在轉(zhuǎn)發(fā)請(qǐng)求的http頭信息中,可以增加x_forwarded_for信息,用以記錄原有客戶端的IP地址和原來(lái)客戶端的請(qǐng)求的服務(wù)器地址;
log_format mylogformat ' $http_x_forwarded_for- $remote_user [$time_local] ' ' "$request" '$status $body_bytes_s ent ' ' "$http_referer" "$http_user_agent" ';
用access_log指令日志文件存放路徑;
用了log_format 指令設(shè)置了日志格式之后,需要用access_log指令指定日志文件的存放路徑;
access_log path(存放路徑) format (自定義日志名稱)
#示例: access_log logs/access.log main; #我們用log_format 定義了一個(gè)mylogformat的日志 我們可以寫成這樣 access_log logs/access.log mylogformat; #如果不想啟用日志 : access_log off ;
在定義日志目錄中要注意的是,nginx進(jìn)程設(shè)置的用戶和組必須有對(duì)該路徑 創(chuàng)建文件的權(quán)限,假設(shè)nginx的usr指令設(shè)置的用戶名和用戶組都是www,而logs目錄的用戶名和組是root,那么日志文件將無(wú)法被創(chuàng)建;
Nginx日志切割腳本
#!/usr/bin/env python
import datetime,os,sys,shutil
log_path = '/alidata/log/nginx/access/'
log_file = 'www.wpython.com.log'
yesterday = (datetime.datetime.now() - datetime.timedelta(days = 1))
try:
os.makedirs(log_path + yesterday.strftime('%Y') + os.sep + \
yesterday.strftime('%m'))
except OSError,e:
print
print e
sys.exit()
shutil.move(log_path + log_file,log_path \
+ yesterday.strftime('%Y') + os.sep \
+ yesterday.strftime('%m') + os.sep \
+ log_file + '_' + yesterday.strftime('%Y%m%d') + '.log')
os.popen("sudo kill -USR1 `cat /alidata/server/nginx/logs/nginx.pid`")
相關(guān)文章
在Ubuntu系統(tǒng)上安裝Nginx服務(wù)器的簡(jiǎn)單方法
這篇文章主要介紹了在Ubuntu系統(tǒng)上安裝Nginx服務(wù)器的簡(jiǎn)單方法,包括打開(kāi)和關(guān)閉Nginx的指令,需要的朋友可以參考下2015-08-08
配置Nginx實(shí)現(xiàn)訪問(wèn)本地靜態(tài)資源的完整指南
Nginx 是一個(gè)高性能的 HTTP 服務(wù)器和反向代理服務(wù)器,廣泛用于靜態(tài)資源的托管和負(fù)載均衡,在開(kāi)發(fā)和生產(chǎn)環(huán)境中,我們常常需要使用 Nginx 來(lái)提供本地靜態(tài)資源的訪問(wèn),本文將詳細(xì)介紹如何配置 Nginx 以便訪問(wèn)本地靜態(tài)資源,需要的朋友可以參考下2024-08-08
一文教會(huì)你使用Nginx訪問(wèn)日志統(tǒng)計(jì)PV與UV
做網(wǎng)站的都知道,平常經(jīng)常要查詢下網(wǎng)站PV、UV等網(wǎng)站的訪問(wèn)數(shù)據(jù),所以下面這篇文章主要給大家介紹了關(guān)于如何使用Nginx訪問(wèn)日志統(tǒng)計(jì)PV與UV的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
nginx rewrite 實(shí)現(xiàn)URL跳轉(zhuǎn)的方法
今天小編就為大家分享一篇nginx rewrite 實(shí)現(xiàn)URL跳轉(zhuǎn)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08
Linux下安裝MongoDB的實(shí)現(xiàn)步驟
這篇文章主要介紹了Linux下安裝MongoDB的實(shí)現(xiàn)步驟的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家輕松安裝,需要的朋友可以參考下2017-10-10

