1. 程式人生 > >Nginx的變量和Nginx的日誌管理

Nginx的變量和Nginx的日誌管理

cache 求長 .sh 標題 pre 默認 mat 配置文件 res

Nginx的變量:
  $request_length       請求長度(包括請求行,標題和請求正文)
  $request_method       請求的動作(get或者post)
  $request_time         請求時間(以毫秒為單位的請求處理時間(1.3.9,1.2.6); 從客戶端讀取第一個字節後經過的時間)
  $request_url          完整的原始請求URL(帶參數)  
  $scheme               返回用的協議,是http還是https
  $remote_addr          客戶端的地址
  $remote_port          client port
  $remote_user          基本認證的身份
  $server_addr          服務端的地址
  $server_port          server port
  $server_protocol      使用的http的版本“HTTP/1.0”, “HTTP/1.1”, or “HTTP/2.0”
  $status               回應狀態
  $body_bytes_sent      給你主體發送的字節
  $http_refrere         請求的上個頁面來至於哪裏
  $http_x_forwarded_for 代理服務器的IP地址
  $http_user_agent      瀏覽器的型號
  $uri                  除去域名和協議的URL

  ================upstream 模塊所支持的變量==============
  $upstream_addr            處理請求的上遊服務器的地址
  $upstream_cache_status    表示是否命中緩存
  $upstream_status          上遊服務器的響應狀態碼
  $upstream_response_time   上遊服務器的響應時間,精度到毫秒
  $upstream_http_$HEADER    HTTP的頭部,如upstream_http_host

Nginx的日誌管理

在配置文件裏面找到根nginx日誌相關的配置文件
    #log_format  main  ‘$remote_addr - $remote_user [$time_local] $request ‘
    #                  ‘"$status" $body_bytes_sent "$http_referer" ‘
    #                  ‘"$http_user_agent" "$http_x_forwarded_for"‘;
    #access_log  logs/access.log  main;
作用域: http 服務器
指令log_format描述了日誌條目的格式。除了格式中的一般變量之外,還可以使用僅在記錄到日誌中時存在的變量:
·$ body_bytes_sent,發送到客戶端的字節數減去響應頭,變量與模塊Apache的mod_log_config的參數%B兼容
(在版本0.3.10之前稱為$ apache_bytes_sent)
·$ bytes_sent,傳輸到客戶端的字節數
·$ connection,連接數
·$ msec,日誌條目時精度為微秒的時間
·$ pipe,如果請求是流水線操作則為“p”
·$ request_length,請求正文的長度
·$ request_time,在幾秒鐘內處理請求的時間
·$ status,回答狀態
·$ time_local,將本地時間轉換為通用日誌格式。
傳輸到客戶端的標頭從前綴“sent_http_”開始,例如$ sent_http_content_range。

Nginx的日誌輪詢。(在這個Nginx裏面 不需要,默認有日誌輪詢)

要求每個server標簽都有自己的日誌文件,日誌文件只保留7天,每個文件只保留一天的日誌信息

#!/bin/bash
cd /usr/local/nginx/logs
DATE=`date +%Y%m%d`
for i in `ls *.log`
do
    echo $i |sed -r "s#(.*).log#mv $i \1-$DATE.log#g" | bash
    touch $i    
done
kill -USR1 `cat nginx.pid` && action "logs 輪詢。sucess" /bin/true
echo "刪除了這些日誌"
find ./ -name "*.log" -type f -mtime +7 
find ./ -name "*.log" -type f -mtime +7 |xargs rm -f 

寫到定時任務中
59 23 * * * /opt/scripts/log_lun.sh >>/var/log/Nginx_lunxu.logs

Nginx的變量和Nginx的日誌管理