共計 2459 個字符,預計需要花費 7 分鐘才能閱讀完成。
這篇文章給大家分享的是有關影響 access.log 的配置指令有哪些的內容。丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,一起跟隨丸趣 TV 小編過來看看吧。
影響 access.log 的 10 個配置指令
1 log_icp_queries
該指令默認激活,導致 squid 記錄所有的 ICP 查詢。假如運行了一個繁忙的父 cache,這點可能讓
access.log 文件變得巨大。為了節省磁盤空間,可禁止該指令:
log_icp_queries off
2 emulate_httpd_log
access.log 文件有 2 種格式:普通格式和原始格式。普通格式就如同大部分 HTTP 服務器(如 Apache)
的日志格式一樣。它包含的信息少于 Squid 的原始格式。然而,假如運行 Squid 在代理人模式下(見
15 章),你可能想要普通日志文件格式。普通格式或許也對你現有的日志文件分析工具有用。使用該
指令來激活普通格式:
emulate_httpd_log on
3 log_mime_hdrs
使用 log_mime_hdrs 讓 squid 記錄 HTTP 請求和響應的頭部:
log_mime_headers on
在激活時,squid 追加請求和響應頭部到 access.log。這會在每行增加 2 個域。每個域都以方括號引用
起來,便于分析。某些字符會被編碼來保證日志文件可讀。Table 13- 2 顯示了這些編碼方案。
Table 13-2. Character encoding rules for HTTP headers in access.log
Character
Encoding
Newline
\n
Carriage return
\r
Backslash
\\
[
%5b
]
%5d
%
%25
ASCII 0-31
%xx (hexadecimal value)
ASCII 127-255
%xx (hexadecimal value)
4 log_fqdn
Squid 默認把客戶端 IP 地址放在 access.log 里。也可以記錄可用的主機名,激活如下指令:
log_fqdn on
這點讓 Squid 在接受到請求時,對客戶端的地址發起反向 DNS 查詢。假如在請求完成時查到了主機名,
Squid 就將它放在第 3 域。
5 ident_lookup_access
該訪問規則列表決定 Squid 是否對客戶端的 TCP 連接發起 RFC 1413 身份查詢。默認情況下,Squid 不
會發布身份查詢。為了激活這點,簡單的增加一個或多個規則:
acl All src 0/0
ident_lookup_access allow All
假如在請求完成時查到了答案,Squid 將其放在第 8 域。假如同時使用了 HTTP 驗證,從驗證得到的用
戶名會取代身份查詢答案。
6 log_ip_on_direct
當 Squid 轉發 cache 丟失到原始服務器時,它在第 9 域記錄原始服務器的 IP 地址??梢越惯@個指令,
以便 squid 記錄主機名:
log_ip_on_direct off
在此情形下,主機名來自于 URI。假如 URI 包含了 IP 地址,Squid 不會將其轉換為主機名。
7 client_netmask
該指令存在主要是為了保護用戶的隱私。不同于記錄完整的 IP 地址,你也可以掩蓋一些位。例如:
client_netmask 255.255.255.0
在此設置下,access.log 里的所有客戶端 IP 地址的最后一個八位組是 0:
1066036246.918 35 163.11.255.0 TCP_IMS_HIT/304 266 GET http://..
8 strip_query_terms
該指令是另一個隱私保護功能。在記錄請求前,Squid 刪除了查詢條件。假如日志文件不幸落入壞人之
手,他們不會找到任何用戶名和密碼。當該指令激活時,在問號 (?) 之后的所有字節被刪除。例如,某
個 URI 如下:
http://auto.search.msn.com/response.asp?MT=www.kim o.com.yw srch=3 prov= utf8
會被記錄為:
http://auto.search.msn.com/response.asp?
.9 uri_whitespace
早前我提到過出現在某些 URI 里的空格字符的問題。RFC 申明 URI 必須不包括空格字符,但在實際中情
況并非如此。uri_whitespace 指令指明 Squid 如何處理這種情況。允許的設置是:strip (default),
deny, allow, encode, 和 chop。在這些設置里,strip,encode 和 chop 保證 URI 域不包含任何空格
字符(空格字符會給 access.log 增加多余的域)。
allow 設置允許請求不加修改的通過 Squid。它很可能會給重定向器和日志文件解析器帶來麻煩。與之
相反的是 deny 設置,它導致 Squid 拒絕這種請求。用戶會接受到錯誤消息,但請求仍帶著空格字符被
記錄到 access.log。
假如設置為 encode,Squid 將空格字符按 RFC 1738 規范來編碼。這點其實用戶代理應該先做到。
chop 設置導致 Squid 把第一個空格字符后的 URI 都截斷。
默認設置是 strip,它讓 Squid 從 URI 里移除空格字符。這確保日志文件解析器和重定向器工作正常,但
可能會破壞某些事情,例如不正確編碼的搜索引擎查詢。
10 buffered_logs
默認情況下,Squid 禁止寫 cache.log 文件的 buffer,這允許你運行 tail -f 命令實時的觀察日志文件變
化。假如你認為這點導致不必要的性能開銷,就可以禁用 buffer:
buffered_logs off
然而,除非以完整 debug 模式運行 Squid,這點可能無關緊要。注意該選項僅僅影響 cache.log。其他
的日志文件總使用非緩沖的寫方式。
很抱歉,因為您在網易相冊發布了違規信息,賬號被屏蔽。被屏蔽期間他人無法訪問您的相冊。
感謝各位的閱讀!關于“影響 access.log 的配置指令有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!