青草久久影院-青草久久伊人-青草久久久-青草久久精品亚洲综合专区-SM双性精跪趴灌憋尿调教H-SM脚奴调教丨踩踏贱奴

17站長(zhǎng)網(wǎng)

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

2022-10-7 08:38| 查看: 1774 |來(lái)源: 互聯(lián)網(wǎng)

如果想統(tǒng)計(jì)網(wǎng)站的訪問(wèn)來(lái)源信息,可以用 php 獲取信息,記錄到數(shù)據(jù)庫(kù)的形式,也可以直接使用 nginx 提供的訪問(wèn)日志,來(lái)記錄網(wǎng)站的訪問(wèn)詳情,管理員可以通過(guò)分析 n ...

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

訪問(wèn)日志

nginx 在處理請(qǐng)求后立即在訪問(wèn)日志中寫入有關(guān)客戶端請(qǐng)求的信息。默認(rèn)情況下,訪問(wèn)日志位 logs/access.log 中,信息以預(yù)定義的組合格式寫入日志。

想要精確記錄訪問(wèn)信息,就需要自定義一個(gè)更加完整的訪問(wèn)日志格式,如下所示:

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"';
  ...
}

這個(gè)日志配置被命名為 geoproxy,它使用許多 nginx 變量來(lái)演示 nginx 日志記錄功能。詳細(xì)講解配置選項(xiàng)中各個(gè)變量的具體含義:

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

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

之后記錄 HTTP 請(qǐng)求方法 $request_method 、協(xié)議 $server_protocol 和 HTTP 方法 $scheme:http 或 https ;

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

除基本信息外,還有一些統(tǒng)計(jì)的結(jié)果數(shù)據(jù):包括請(qǐng)求處理的毫秒級(jí)時(shí)間 $request_time 、服務(wù)器響應(yīng)的數(shù)據(jù)塊大小 $body_bytes_sent ;

此外,客戶端所在國(guó)家 $geoip_city_country_code3 、地區(qū) $geoip_region 和城市信息 $geoip_city 也被記錄在內(nèi);

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

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

請(qǐng)求來(lái)源 $http_referer 和用戶代理 $http_user_agent 也可以被記錄在日志里;

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

這個(gè)格式的日志配置將產(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"

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

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

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

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

在實(shí)際運(yùn)用中,為不同上下文配置不同的日志會(huì)非常有用,記錄的日志內(nèi)容可以簡(jiǎn)單的信息,也可以詳細(xì)記錄所有必要信息。不僅如此,日志內(nèi)容除了支持文本

也能記錄 json 格式和 xml 格式數(shù)據(jù)。實(shí)際上 nginx 日志有助于您了解服務(wù)器流量、客戶端使用情況和客戶端來(lái)源等信息。此外,訪問(wèn)日志還可以幫助您定位與上游服務(wù)器或特定 uri 相關(guān)的響應(yīng)和問(wèn)題;對(duì)于測(cè)試來(lái)講,訪問(wèn)日志同樣有用,它可以用于分析流量情況,模擬真實(shí)的用戶交互場(chǎng)景。日志在故障排除、調(diào)試、應(yīng)用分析及業(yè)務(wù)調(diào)整中作用是不可或缺的。

錯(cuò)誤日志

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

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

error_log 指令配置時(shí)需要一個(gè)必選的日志目錄和一個(gè)可選的錯(cuò)誤等級(jí)選項(xiàng)。

除 if 指令外, error_log 指令能在所有的上下文中使用。錯(cuò)誤日志等級(jí)包括:

debug、info、notice、warn、error、crit、alert 和 emerg。給出的日志

等級(jí)順序就是記錄最小到最嚴(yán)謹(jǐn)?shù)娜罩镜燃?jí)順序。需要注意的是 debug 日志

需要在編譯 nginx 服務(wù)器時(shí),帶上 --with-debug 標(biāo)識(shí)才能使用。

當(dāng)服務(wù)器配置出錯(cuò)時(shí),首先需要查看錯(cuò)誤日志以定位問(wèn)題。錯(cuò)誤日志

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

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

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

既然不再需要將日志寫到磁盤的某個(gè)目錄,而是發(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_log 和 access_log 指令的 syslog 參數(shù)緊跟冒號(hào) : 和一些參數(shù)選項(xiàng)。包括:必選的 server 標(biāo)記表示需要連接的 IP、DNS 名稱或 UNIX 套接字;

可以使用如上注釋的高端玩。

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

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

facility 參數(shù)設(shè)置 syslog 的類型 facility ,值是 syslog RFC 標(biāo)準(zhǔn)定義的 23 個(gè)值中一個(gè),默認(rèn)值為 local7 。其他可能的值是: auth , authpriv , daemon , cron , ftp , lpr , kern , mail , news , syslog , user , uucp , local0 ... local7

tag 參數(shù)表示日志文件中顯示時(shí)候的標(biāo)題,默認(rèn)值是 nginx 。

severity 設(shè)置消息嚴(yán)重程度,默認(rèn)是 info 級(jí)別日志。

日志緩沖區(qū)

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

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

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)17站長(zhǎng)網(wǎng)的支持。

本文最后更新于 2022-10-7 08:38,某些文章具有時(shí)效性,若有錯(cuò)誤或已失效,請(qǐng)?jiān)诰W(wǎng)站留言或聯(lián)系站長(zhǎng):[email protected]
·END·
站長(zhǎng)網(wǎng)微信號(hào):w17tui,關(guān)注站長(zhǎng)、創(chuàng)業(yè)、關(guān)注互聯(lián)網(wǎng)人 - 互聯(lián)網(wǎng)創(chuàng)業(yè)者營(yíng)銷服務(wù)中心

免責(zé)聲明:本站部分文章和圖片均來(lái)自用戶投稿和網(wǎng)絡(luò)收集,旨在傳播知識(shí),文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請(qǐng)勿用于商業(yè)用途,如果損害了您的權(quán)利,請(qǐng)聯(lián)系我們及時(shí)修正或刪除。謝謝!

17站長(zhǎng)網(wǎng)微信二維碼

始終以前瞻性的眼光聚焦站長(zhǎng)、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領(lǐng)域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長(zhǎng)轉(zhuǎn)型升級(jí),為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營(yíng)銷服務(wù),與站長(zhǎng)一起進(jìn)步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨(dú)!

掃一掃,關(guān)注站長(zhǎng)網(wǎng)微信

大家都在看

熱門排行

    最近更新

      返回頂部
      主站蜘蛛池模板: 午夜福到在线4国产 | 亚洲乱码一区二区三区香蕉 | 亚洲免费国产 | 被黑人做的白浆直流 | 亚洲最大在线视频 | a在线视频免费观看 | 蜜桃日本MV免费观看 | 用快播看av的网站 | 欧美一区二区日韩一区二区 | 麻花豆传媒剧国产免费mv观看 | 99久久精品一区二区三区 | 黄色软件色多多 | 久久99AV无色码人妻蜜 | 欧洲老妇人bb | 被送到黑人性奴俱乐部 | 成人免费视频无遮挡在线看 | 国产在线精品亚洲另类 | 国产三级在线免费 | 国产精品综合AV一区二区国产馆 | 老师洗澡让我吃她胸的视频 | 色噜噜2017最新综合 | 欧美整片华人play | 免费夜里18款禁用软粉色 | 久久超碰国产精品最新 | 99久在线国内在线播放免费观看 | 在线视频 国产精品 中文字幕 | 欧美日韩亚洲成人 | 小寡妇水真多好紧 | 老师小扫货水能么多叫出来 | 人妻中文字幕乱人伦在线 | writeas雷狮直播 | 邻居的阿2中文字版电影 | 国产99久久亚洲综合精品西瓜tv | 99久久爱re热6在线播放 | 好嗨哟在线看片免费 | 波多结衣一区二区三区 | 亚洲国产成人久久精品影视 | 一级大乳奶 | 纯肉腐文高H总受男男 | adc高清在线观看 | 99久女女精品视频在线观看 |