LAMP架構 Apache日誌問題

2021-08-14 02:18:04 字數 1882 閱讀 4397

預設情況下log日誌格式為:

logformat "%h

%l%u

%t \"%r\" %>s %b \"%i\" \"%i\"" combined

說明:其中%h 是記錄訪問者的ip,如果在web的前端有一層**,那麼這個%h其實就是**機器的ip,這不是我們想要的。在這種情況下,

%i欄位會記錄客戶端真實的ip。所以log日誌改為:

logformat "%h %i %l

%u%t \"%r\" %>s %b \"%i\" \"%i\"" combined

需求:把類似請求 www.aaa.com/aaa/… 這樣的請求才記錄日誌。

在httpd.conf 或者 相關的虛擬主機配置檔案中新增

setenvif request_uri "^/aaa/.*" aaa-request

customlog "|/usr/local

/apache/bin

/rotatelogs -l /usr

/local/apache

/logs/aaa-access_

%y%m

%d.log

86400

" combined env=aaa-request

這樣就可以了。這個原理和不記錄等靜態訪問的日誌是一樣的。

apache的日誌是可以自動切割的。

方法一: 使用 cronolog 為每一天建立乙個新的日誌

customlog "|bin/cronolog logs/access_%y

%m%d.log" combined

customlog "|bin/cronolog logs/access_%y

%m%d

%h.log" combined //每小時

方法二:使用 rotatelogs 每一天記錄乙個日誌

customlog "|bin/rotatelogs -l logs/access_%y

%m%d.log 86400" combined

customlog "|bin/rotatelogs -l logs/access_%y

%m%d

%h.log 3600" combined //每小時

apache rotatelogs語法:

rotatelogs [ -l ] logfile [ rotationtime [ offset ]] | [ filesizem ]
選項:

-l

使用本地時間代替gmt時間作為時間基準。注意:在乙個改變gmt偏移量(比如夏令時)的環境中使用-l會導致不可預料的結果。所以一定要加上-l

否則出現的日誌時間和實際時間是相差8小時的。

logfile

它加上基準名就是日誌檔名。如果logfile中包含」%」,則它會被視為用於strftime()的格式字串;否則它會被自動加上以秒為單位的」.nnnnnnnnnn」字尾。這兩種格式都表示新的日誌開始使用的時間。

rotationtime

日誌檔案滾動的以秒為單位的間隔時間。

offset

相對於utc的時差的分鐘數。如果省略,則假定為」0″並使用utc時間。比如,要指定utc時差為」-5小時」的地區的當地時間,則此引數應為」-300″。

filesizem

指定以filesizem檔案大小滾動,而不是按照時間或時差滾動。

LAMP架構 Apache訪問日誌

apache日誌位置 root dl 001 ls usr local apache2.4 logs com error logo abc.com error log error log檢視日誌格式 root dl 001 vim usr local apache2.4 conf httpd.con...

LAMP架構七( Apache使用者認證)

root global vim etc httpd conf.d virtual.conf 在a.com虛擬主機下編輯新增以下內容,注意空格,最好手敲。documentroot var www html a servername a.com 指定認證的目錄 allowoverride authcon...

LAMP架構五( Apache和PHP結合)

如何安裝mysql 如何安裝 apache 如何安裝php 在這章節統統可以忘記,軟體只要會yum install安裝就可以了。五 這篇重點講apache和php結合,如何在一起的故事。1 在一起的四個條件。1.1 檢查apache有沒有載入php5的模組 apachectl m 1.2 若沒載入模...