成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Nginx 日志自定義記錄及啟用日志緩沖區(qū)

mochixuan / 1320人閱讀

摘要:給出的日志等級順序就是記錄最小到最嚴謹?shù)娜罩镜燃夗樞?。錯誤日志格式不支持自定義日志格式但他同樣記錄當(dāng)前時間日志等級和具體信息等數(shù)據(jù)。日志緩沖區(qū)當(dāng)系統(tǒng)處于負載狀態(tài)時,啟用日志緩沖區(qū)以降低進程阻塞。

原文鏈接: 何曉東 博客

如果想統(tǒng)計網(wǎng)站的訪問來源信息,可以用 php 獲取信息,記錄到數(shù)據(jù)庫的形式,也可以直接使用 nginx 提供的訪問日志,來記錄網(wǎng)站的訪問詳情,管理員可以通過分析 nginx 的訪問日志,來分析用戶的訪問來源,訪問行為詳情,網(wǎng)站頁面訪問熱度等。此外,nginx 自身也有錯誤日志,方便運維人員調(diào)試 nginx。對于記錄日志的行為,如果每次進行磁盤操作,將會較多的耗費資源,基于這個情況可以開啟 nginx 日志緩沖區(qū),緩沖區(qū)滿或者定時寫入的時間到了,再一次寫入日志。
訪問日志

nginx 在處理請求后立即在訪問日志中寫入有關(guān)客戶端請求的信息。默認情況下,訪問日志位 logs/access.log 中,信息以預(yù)定義的組合格式寫入日志。
想要精確記錄訪問信息,就需要自定義一個更加完整的訪問日志格式,如下所示:

http {
    log_format geoproxy
    "[$time_local] $remote_addr "
    "$realip_remote_addr $remote_user "
    "$request_method $server_protocol "
    "$scheme $server_name $uri $status "
    "$request_time $body_bytes_sent "
    "$geoip_city_country_code3 $geoip_region "
    ""$geoip_city" $http_x_forwarded_for "
    "$upstream_status $upstream_response_time "
    ""$http_referer" "$http_user_agent"";
    ...
}

這個日志配置被命名為 geoproxy,它使用許多 nginx 變量來演示 nginx 日志記錄功能。詳細講解配置選項中各個變量的具體含義:

當(dāng)用戶發(fā)起請求時,會記錄服務(wù)器時間 $time_local, $remote_user 值為通過基本授權(quán)的用戶名稱;

用于 nginx 處理 geoip_proxyrealip_header 指令的打開連接的 IP 地址和客戶端 IP 地址;

之后記錄 HTTP 請求方法 $request_method、協(xié)議 $server_protocol 和 HTTP 方法 $scheme:httphttps;

當(dāng)然還有服務(wù)器名稱 $server_name、請求的 URI 和響應(yīng)狀態(tài)碼;

除基本信息外,還有一些統(tǒng)計的結(jié)果數(shù)據(jù):包括請求處理的毫秒級時間 $request_time、服務(wù)器響應(yīng)的數(shù)據(jù)塊大小 $body_bytes_sent
此外,客戶端所在國家 $geoip_city_country_code3、地區(qū) $geoip_region 和城市信息 $geoip_city 也被記錄在內(nèi);

變量 $http_x_forwarded_for 用于記錄由其它代理服務(wù)器發(fā)起的請求的 X-Forwarded-For 頭消息;

upstream 模塊中一些數(shù)據(jù)也被記錄到日志里:被代理服務(wù)器的響應(yīng)狀態(tài)碼 $upstream_status 、建立鏈接和從上游服務(wù)器接收響應(yīng)主體最后一個字節(jié)的時間 $upstream_response_time、 建立和上游服務(wù)器的鏈接時間 $upstream_connect_time、建立鏈接和從上游響應(yīng)頭的第一個字節(jié)的時間 $upstream_header_time。

請求來源 $http_referer 和用戶代理 $http_user_agent 也可以被記錄在日志里;

nginx 的日志記錄功能非常強大和靈活的,需要注意的是:用于定義日志格式的 log_format 指令僅適用于 http 塊級指令內(nèi),所有時間值均以毫秒為單位,以毫秒分辨率進行測量。。

這個格式的日志配置將產(chǎn)生如下類型的日志:

[25/Feb/2019:16:20:42 +0000] 10.0.1.16 192.168.0.122 Derek
GET HTTP/1.1 http www.example.com / 200 0.001 370 USA MI
"Ann Arbor" - 200 0.001 "-" "curl/7.47.0"

如果需要使用這個日志配置,需要結(jié)合使用 access_log 指令,access_log指令接收一個日志目錄和使用的配置名作為參數(shù):

server {
    access_log /var/log/nginx/access.log geoproxy;
    ...
}

access_log 能在多個上下文使用,每個上下文中可以定義各自的日志目錄和日志記錄格式。

結(jié)論: nginx 中的日志模塊允許為不同的場景配置日志格式,以便查看不同的日志文件。

在實際運用中,為不同上下文配置不同的日志會非常有用,記錄的日志內(nèi)容可以簡單的信息,也可以詳細記錄所有必要信息。不僅如此,日志內(nèi)容除了支持文本
也能記錄 json 格式和 xml 格式數(shù)據(jù)。實際上 nginx 日志有助于您了解服務(wù)器流量、客戶端使用情況和客戶端來源等信息。此外,訪問日志還可以幫助您定位與上游服務(wù)器或特定 uri 相關(guān)的響應(yīng)和問題;對于測試來講,訪問日志同樣有用,它可以用于分析流量情況,模擬真實的用戶交互場景。日志在故障排除、調(diào)試、應(yīng)用分析及業(yè)務(wù)調(diào)整中作用是不可或缺的。

錯誤日志

為了精確定位 nginx 的錯誤日志,使用自帶的 error_log 指令定義錯誤日志目錄及記錄錯誤日志的等級,配置如下:

error_log /var/log/nginx/error.log warn;

error_log 指令配置時需要一個必選的日志目錄和一個可選的錯誤等級選項。
if 指令外,error_log 指令能在所有的上下文中使用。錯誤日志等級包括:
debug、info、notice、warn、error、crit、alert 和 emerg。給出的日志
等級順序就是記錄最小到最嚴謹?shù)娜罩镜燃夗樞?。需要注意的?debug 日志
需要在編譯 nginx 服務(wù)器時,帶上 --with-debug 標識才能使用。

當(dāng)服務(wù)器配置出錯時,首先需要查看錯誤日志以定位問題。錯誤日志
也是定位應(yīng)用服務(wù)器(如 FastCGI 服務(wù))的利器。通過錯誤日志,我們可以調(diào)試 worker 進程連接錯誤、內(nèi)存分配、客戶端 IP 和 應(yīng)用服務(wù)器等問題。錯誤日志格式不支持自定義日志格式;但他同樣記錄當(dāng)前時間、日志等級和具體信息等數(shù)據(jù)。

注意: 錯誤日志的默認設(shè)置適用于全局。要覆蓋它,請將 error_log 指令放在 main(頂級)配置上下文中。error_log 在開源 NGINX 1.5.2 版中添加了在同一配置級別指定多個指令的功能。

通過 syslog 將日志發(fā)送到統(tǒng)一服務(wù)器

既然不再需要將日志寫到磁盤的某個目錄,而是發(fā)送到統(tǒng)一的日志服務(wù)器,則將原有的目錄部分替換為服務(wù)器 ip 即可,配置如下:

error_log syslog:server=10.0.1.42 debug;
access_log syslog:server=10.0.1.42,tag=nginx,severity=info geoproxy;

#error_log server=unix:/var/log/nginx.sock debug;
#access_log syslog:server=[2001:db8::1]:1234,facility=local7,tag=nginx,severity=info;

error_logaccess_log 指令的 syslog 參數(shù)緊跟冒號 : 和一些參數(shù)選項。包括:必選的 server 標記表示需要連接的 IP、DNS 名稱或 UNIX 套接字;
可以使用如上注釋的高端玩。

可選參數(shù)有 facility、severitytag:

server 參數(shù)接收帶端口的 IP 地址或 DNS 名稱;默認是 UDP 514 端口。

facility 參數(shù)設(shè)置syslog 的類型 facility,值是 syslog RFC 標準定義的 23 個值中一個,默認值為 local7。其他可能的值是:authauthpriv,daemoncron,ftplprkern,mail,newssyslog,useruucp,local0 ... local7

tag 參數(shù)表示日志文件中顯示時候的標題,默認值是 nginx。

severity 設(shè)置消息嚴重程度,默認是 info 級別日志。

日志緩沖區(qū)

當(dāng)系統(tǒng)處于負載狀態(tài)時,啟用日志緩沖區(qū)以降低 nginx worker 進程阻塞。大量的磁盤讀寫和 cpu 資源使用對于服務(wù)器資源也是一種巨大消耗。將日志數(shù)據(jù)緩沖到內(nèi)存中可能是很小的一個優(yōu)化手段,buffer 參數(shù)意義是緩沖區(qū)的大小,功能是當(dāng)緩沖區(qū)已經(jīng)寫滿時,日志會被寫入文件中;flush 參數(shù)意義是緩沖區(qū)內(nèi)日志在緩沖區(qū)內(nèi)存中保存的最長時間,功能即當(dāng)緩存中的日志超過最大緩存時間,也會被寫入到文件中,不足的地方即寫入到日志文件的日志有些許延遲,即時調(diào)試中應(yīng)當(dāng)關(guān)閉日志緩沖。。配置如下:

http {
    access_log /var/log/nginx/access.log main buffer=32k flush=1m;
}

參考鏈接:

nginx cook book

nginx 配置日志

如常,給大家推薦一波課程,我看過的,質(zhì)量很高 -> 去瞅瞅

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/31688.html

相關(guān)文章

  • Nginx 日志定義記錄啟用日志沖區(qū)

    摘要:給出的日志等級順序就是記錄最小到最嚴謹?shù)娜罩镜燃夗樞?。錯誤日志格式不支持自定義日志格式但他同樣記錄當(dāng)前時間日志等級和具體信息等數(shù)據(jù)。日志緩沖區(qū)當(dāng)系統(tǒng)處于負載狀態(tài)時,啟用日志緩沖區(qū)以降低進程阻塞。 原文鏈接: 何曉東 博客 如果想統(tǒng)計網(wǎng)站的訪問來源信息,可以用 php 獲取信息,記錄到數(shù)據(jù)庫的形式,也可以直接使用 nginx 提供的訪問日志,來記錄網(wǎng)站的訪問詳情,管理員可以通過分析 ng...

    jzzlee 評論0 收藏0
  • Nginx基礎(chǔ)篇(2)- Nginx基本配置文件和變量詳解

    摘要:基本配置文件和變量詳解基本配置文件運行的用戶進程數(shù),建議設(shè)置為等于總核心數(shù)。允許客戶端請求的最大單文件字節(jié)數(shù)。如果主體超過緩沖區(qū)大小,則完整主體或其一部分將寫入臨時文件。該指令在配置的,和區(qū)塊使用。 Nginx基本配置文件和變量詳解 1. 基本配置文件 /etc/nginx/nginx.conf # nginx運行的用戶 user nginx; # nginx進程數(shù),建議設(shè)置為等于C...

    TZLLOG 評論0 收藏0
  • Nginx基礎(chǔ)篇(2)- Nginx基本配置文件和變量詳解

    摘要:基本配置文件和變量詳解基本配置文件運行的用戶進程數(shù),建議設(shè)置為等于總核心數(shù)。允許客戶端請求的最大單文件字節(jié)數(shù)。如果主體超過緩沖區(qū)大小,則完整主體或其一部分將寫入臨時文件。該指令在配置的,和區(qū)塊使用。 Nginx基本配置文件和變量詳解 1. 基本配置文件 /etc/nginx/nginx.conf # nginx運行的用戶 user nginx; # nginx進程數(shù),建議設(shè)置為等于C...

    hss01248 評論0 收藏0
  • 精通Nginx(二)

    摘要:啟用或禁用反應(yīng)是否啟用壓縮響應(yīng)報文不是所有瀏覽器都支持壓縮機制設(shè)置一個響應(yīng)的壓縮級別??山邮艿闹翟诘街g。 博文參考 http://wiki.nginx.org/HttpUpstreamConsistentHash http://wiki.nginx.org/HttpUpstreamFairModule http://wiki.nginx.org/HttpUpstreamRequest...

    nidaye 評論0 收藏0

發(fā)表評論

0條評論

mochixuan

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<