Nginx的日志文件配置與切割
與Nginx日志有關的命令有2條:
1.log_format用來設置日志的格式;
2.access_log用來指定日志文件的存放路徑、格式和緩存大小;
一.用log_format指令設置日志格式
語法:
log_format name format [format ...]
解釋:
name:定義格式名稱
format:定義格式樣式
log_format有一個默認、無須設置的combined日志格式,apache就是用的這個
log_format access '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
access_log /usr/local/webserver/logs/access.log access;
假設將Nginx服務器作為Web服務器,位於負載均衡設備、squid、Nginx發現代理之後,就不能獲取到客戶端的真實ip地址了。原因是因為經過了反向代理:由於在客戶端和Web服務器之間增加了中間層,因此Web服務器無法直接拿到客戶端的IP,通過¥remote_addr變量拿到的將是反向代理服務器的ip地址。但是,反向代理服務器在轉發請求的HTTP頭部信息中,可以增加X-Forwarde-For信息,用以記錄原有客戶端IP地址和原來客戶端請求的服務器地址
解釋:
$remote_addr和$http_x_frowarded_for用於記錄IP地址;$1
$remote_user用於記錄遠程客戶端用戶名稱;
$time_local用於記錄訪問時間與時區;
$request用於記錄請求URL與HTTP協議;
$status用於記錄狀態;如:成功200、未找到404 $9
$body_bytes_sent用於記錄發送給客戶端的文件主體內容大小;
$http_referer用戶記錄是從哪個頁面鏈接訪問過來的;
$http_user_agent用於記錄客戶浏覽器信息