0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

配置Nginx訪問(wèn)日志

馬哥Linux運(yùn)維 ? 來(lái)源:入門小站 ? 作者:入門小站 ? 2022-05-24 09:59 ? 次閱讀

Nginx是一個(gè)開(kāi)放源代碼的高性能HTTP和反向代理服務(wù)器,負(fù)責(zé)處理Internet上某些最大站點(diǎn)的負(fù)載。在管理NGINX網(wǎng)絡(luò)服務(wù)器時(shí),你要執(zhí)行的最常見(jiàn)任務(wù)之一就是檢查日志文件。

在對(duì)服務(wù)器或應(yīng)用程序問(wèn)題進(jìn)行故障排除時(shí),知道如何配置和讀取日志非常有用,因?yàn)樗鼈兲峁┝嗽敿?xì)的調(diào)試信息

Nginx用兩種類型的日志記錄其事件:訪問(wèn)日志和錯(cuò)誤日志。訪問(wèn)日志記錄有關(guān)客戶端請(qǐng)求的信息,錯(cuò)誤日志記錄有關(guān)服務(wù)器和應(yīng)用程序問(wèn)題的信息。

教程概述了如何配置和讀取Nginx訪問(wèn)和錯(cuò)誤日志。配置Nginx訪問(wèn)日志的格式與位置,配置錯(cuò)誤日志格式與位置,默認(rèn)的日志文件所在位置,讀取和理解Nginx日志文件每個(gè)字段。

配置Nginx訪問(wèn)日志

每當(dāng)處理客戶請(qǐng)求時(shí),Nginx都會(huì)在訪問(wèn)日志中生成一個(gè)新記錄。每個(gè)事件記錄都包含一個(gè)時(shí)間戳,并包含有關(guān)客戶端和所請(qǐng)求資源的各種信息。訪問(wèn)日志可以顯示訪問(wèn)者的位置,訪問(wèn)者的訪問(wèn)的頁(yè)面等。

log_format指令允許你定義記錄日志的格式。access_log指令啟用并設(shè)置日志文件的位置和使用的格式。

access_log指令的最基本語(yǔ)法如下:


	

access_loglog_filelog_format;

其中log_file是日志文件的完整路徑,log_format是日志文件使用的格式??梢栽?code style="margin-right:2px;margin-left:2px;padding:2px 4px;font-size:14px;color:rgb(30,107,184);background-color:rgba(27,31,35,.05);font-family:'Operator Mono', Consolas, Monaco, Menlo, monospace;">http,serverlocation指令的上下文中啟用訪問(wèn)日志。

默認(rèn)情況下,Nginx主配置文件中的http指令配置了全局訪問(wèn)日志格式。


	

http{ ... access_log/var/log/nginx/access.log; ... }

/etc/nginx/nginx.conf

為獲得更好的可維護(hù)性,建議為每個(gè)服務(wù)器設(shè)置一個(gè)單獨(dú)的訪問(wèn)日志文件。在server指令中設(shè)置的access_log指令將覆蓋在http指令中設(shè)置的access_log


	

http{ ... access_log/var/log/nginx/access.log; ... server{ server_namedomain.com access_log/var/log/nginx/domain.access.log; ... } }

/etc/nginx/conf.d/domain.com.conf

如果未指定日志格式,Nginx將使用預(yù)定義的combined組合格式,如下所示:


	

log_formatcombined'$remote_addr-$remote_user[$time_local]' '"$request"$status$body_bytes_sent' '"$http_referer""$http_user_agent"';

要更改日志記錄格式,請(qǐng)覆蓋默認(rèn)設(shè)置或定義一個(gè)新設(shè)置。例如,定義一個(gè)名為main的新日志記錄格式,它將用添加X-Forwarded-Forheader的值來(lái)擴(kuò)展combined格式,在httpserver中添加以下定義指令:


	

log_formatcustom'$remote_addr-$remote_user[$time_local]"$request"' '$status$body_bytes_sent"$http_referer"' '"$http_user_agent""$http_x_forwarded_for"';

要使用新日志格式,請(qǐng)?jiān)谌罩疚募笾付ㄆ涿Q,如下所示:


	

access_log/var/log/nginx/access.logcustom;

雖然訪問(wèn)日志提供了非常有用的信息。但它會(huì)占用磁盤空間,并可能影響服務(wù)器性能。如果服務(wù)器資源不足,并且網(wǎng)站繁忙,則可能要禁用訪問(wèn)日志。為此,請(qǐng)將access_log偽指令的值設(shè)置為off。理論上你不會(huì)出現(xiàn)這種情況,Nginx會(huì)自動(dòng)刪除前期的日志文件:

access_log off;

配置錯(cuò)誤日志

Nginx將應(yīng)用程序和常規(guī)服務(wù)器錯(cuò)誤的消息寫(xiě)入錯(cuò)誤日志文件。如果你在Web應(yīng)用程序中遇到錯(cuò)誤,則錯(cuò)誤日志是你開(kāi)始進(jìn)行排查問(wèn)題的第一個(gè)位置。error_log指令啟用并設(shè)置錯(cuò)誤日志的位置和嚴(yán)重性級(jí)別。它采用以下格式,可以在http,serverlocation上下文中進(jìn)行設(shè)置:

	
		error_loglog_filelog_levellog_level參數(shù)設(shè)置日志記錄級(jí)別。以下是按嚴(yán)重性從低到高列出的級(jí)別:
  • debug-調(diào)試消息。
  • info-信息性消息。
  • notice-公告。
  • warn- 警告。
  • error-處理請(qǐng)求時(shí)出錯(cuò)。
  • crit-關(guān)鍵問(wèn)題。需要立即采取行動(dòng)。
  • alert-警報(bào)。必須立即采取行動(dòng)。
  • emerg- 緊急情況。系統(tǒng)處于無(wú)法使用的狀態(tài)。
每個(gè)日志級(jí)別包括更高級(jí)別。例如,如果你將日志級(jí)別設(shè)置為warn,則Nginx還將記錄error,critalertemerg消息。未指定log_level參數(shù)時(shí),默認(rèn)為error。 默認(rèn)情況下,error_log指令在主nginx.conf文件內(nèi)的http指令上下文中定義:

	
		http{ ... error_log/var/log/nginx/error.log; ... }
		/etc/nginx/nginx.conf
		與訪問(wèn)日志相同,建議為每個(gè)服務(wù)器設(shè)置一個(gè)單獨(dú)的錯(cuò)誤日志文件,該文件將覆蓋更高級(jí)別的設(shè)置如http指令上下文。
		例如,要將domain.com的錯(cuò)誤日志設(shè)置為warn,你可以使用:

	
		http{ ... error_log/var/log/nginx/error.log; ... server{ server_namedomain.com error_log/var/log/nginx/domain.error.logwarn; ... } }
		無(wú)論何時(shí)修改配置文件,都必須重新加載Nginx服務(wù),以使更改生效。

日志文件的位置

在大多數(shù)Linux發(fā)行版中,例如Ubuntu ,CentOS和Debian。默認(rèn)情況下,訪問(wèn)和錯(cuò)誤日志位于/var/log/nginx目錄中。

讀取和理解Nginx日志文件

你可以使用cat,lessgrep,cutawk等命令打開(kāi)和解析nginx日志文件。以下是使用默認(rèn)的Nginx日志格式的訪問(wèn)日志文件的記錄:

	
		192.168.33.1--[15/Oct/201941:46+0000]"GET/HTTP/1"200396"-""Mozilla/0(X11;Linuxx86_64)AppleWebKit/536(KHTML,likeGecko)Chrome/38120Safari/536"
		讓我們細(xì)分Nginx日志文件記錄的每個(gè)字段意味著什么:
  • $remote_addr-192.168.33.1-發(fā)出請(qǐng)求的客戶端的IP地址。
  • $remote_user---HTTP身份驗(yàn)證用戶。未設(shè)置用戶名時(shí),此字段顯示-。
  • [$time_local]-[15/Oct/201941:46 +0000]
本地服務(wù)器時(shí)間。
  • "$request"-"GET / HTTP/1.1"-請(qǐng)求類型,路徑和協(xié)議。
  • $status-200-服務(wù)器響應(yīng)代碼。
  • $body_bytes_sent-396-服務(wù)器響應(yīng)的大?。ㄒ宰止?jié)為單位)。
  • "$http_referer"-"-"-引薦網(wǎng)址。
  • "$http_user_agent"-Mozilla/5.0 ...-客戶端的用戶代理(網(wǎng)絡(luò)瀏覽器)。
使用tail命令實(shí)時(shí)觀看日志文件記錄:tail -f access.log

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    8701

    瀏覽量

    84548
  • 源代碼
    +關(guān)注

    關(guān)注

    96

    文章

    2942

    瀏覽量

    66444
  • nginx
    +關(guān)注

    關(guān)注

    0

    文章

    139

    瀏覽量

    12115

原文標(biāo)題:配置 Nginx 訪問(wèn)與錯(cuò)誤日志

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    鐵威馬教程 如何收集NAS的日志

    適用版本: 適用于TOS 5.0.xxx、TOS5.1.xxx版本。 適用機(jī)型: TNAS型號(hào)(除F2-210、F4-210) 故障現(xiàn)象: 當(dāng)TNAS宕機(jī)導(dǎo)致網(wǎng)頁(yè)不可訪問(wèn)且PC無(wú)法搜索到該設(shè)備
    的頭像 發(fā)表于 07-16 18:02 ?462次閱讀
    鐵威馬教程 如何收集NAS的<b class='flag-5'>日志</b>

    nginx重啟命令linux步驟是什么?

      1、驗(yàn)證nginx配置文件是否正確   方法一:進(jìn)入nginx安裝目錄sbin下,輸入命令./nginx -t   看到如下顯示nginx
    發(fā)表于 07-11 17:13

    nginx重啟命令linux步驟是什么?

      1、驗(yàn)證nginx配置文件是否正確   方法一:進(jìn)入nginx安裝目錄sbin下,輸入命令./nginx -t   看到如下顯示nginx
    發(fā)表于 07-10 16:40

    奇怪!應(yīng)用的日志呢??

    1. 問(wèn)題回顧 問(wèn)題背景 是在進(jìn)行中臺(tái)應(yīng)用中間件遷移過(guò)程中,發(fā)現(xiàn)存在 項(xiàng)目啟動(dòng)失敗 或者 項(xiàng)目正常啟動(dòng) (jsf正常掛載并正常運(yùn)行,mq正常發(fā)送和消費(fèi))但是 無(wú)任何日志打印 現(xiàn)象。 更奇怪 的是不打
    的頭像 發(fā)表于 06-11 10:48 ?241次閱讀
    奇怪!應(yīng)用的<b class='flag-5'>日志</b>呢??

    什么是Apache日志?Apache日志分析工具介紹

    Apache Web 服務(wù)器在企業(yè)中廣泛用于托管其網(wǎng)站和 Web 應(yīng)用程序,Apache 服務(wù)器生成的原始日志提供有關(guān) Apache 服務(wù)器托管的網(wǎng)站如何處理用戶請(qǐng)求以及訪問(wèn)您的網(wǎng)站時(shí)經(jīng)常遇到的錯(cuò)誤的重要信息。
    的頭像 發(fā)表于 01-04 10:09 ?627次閱讀

    聊聊日志即數(shù)據(jù)庫(kù)

    《數(shù)據(jù)庫(kù)故障恢復(fù)機(jī)制的前世今生》[1]一文中介紹過(guò),由于磁盤的的順序訪問(wèn)性能遠(yuǎn)好于隨機(jī)訪問(wèn),數(shù)據(jù)庫(kù)設(shè)計(jì)中通常都會(huì)采用WAL的方式,將隨機(jī)訪問(wèn)的數(shù)據(jù)庫(kù)請(qǐng)求轉(zhuǎn)換為順序的日志IO,并通過(guò)Bu
    的頭像 發(fā)表于 12-06 09:30 ?543次閱讀
    聊聊<b class='flag-5'>日志</b>即數(shù)據(jù)庫(kù)

    如何通過(guò)Nginx實(shí)現(xiàn)禁止國(guó)外IP訪問(wèn)網(wǎng)站

    最近不少小伙伴反饋?zhàn)约壕S護(hù)的項(xiàng)目中,經(jīng)常在后臺(tái)可以看到來(lái)自國(guó)外IP的攻擊,令人頭疼。今天浩道跟大家分享如何通過(guò)Nginx來(lái)實(shí)現(xiàn)禁止國(guó)外IP訪問(wèn)網(wǎng)站,確保你網(wǎng)站免遭國(guó)外IP攻擊了!
    的頭像 發(fā)表于 12-01 11:12 ?1272次閱讀
    如何通過(guò)<b class='flag-5'>Nginx</b>實(shí)現(xiàn)禁止國(guó)外IP<b class='flag-5'>訪問(wèn)</b>網(wǎng)站

    Nginx配置文件如何設(shè)置頭信息保留真實(shí)IP不丟失

    Nginx 配置中設(shè)置頭信息以保留客戶端的真實(shí) IP 地址通常是在使用反向代理的場(chǎng)景中需要的。當(dāng) Nginx 作為反向代理時(shí),客戶端的真實(shí) IP 地址可能會(huì)在轉(zhuǎn)發(fā)請(qǐng)求時(shí)丟失,因?yàn)榈竭_(dá)應(yīng)用服務(wù)器
    的頭像 發(fā)表于 11-30 10:54 ?1540次閱讀

    nginx使用學(xué)習(xí)之正、反向代理

    ,則需要通過(guò)代理服務(wù)器來(lái)訪問(wèn),這種代理服務(wù)就稱為正向代理。 簡(jiǎn)單一點(diǎn):通過(guò)代理服務(wù)器來(lái)訪問(wèn)服務(wù)器的過(guò)程 就叫 正向代理。 需要在客戶端配置代理服務(wù)器進(jìn)行指定網(wǎng)站訪問(wèn) 反向代理 反向代理
    的頭像 發(fā)表于 11-13 10:54 ?830次閱讀
    <b class='flag-5'>nginx</b>使用學(xué)習(xí)之正、反向代理

    Nginx 如何實(shí)現(xiàn)高性能低消耗

    Nginx具有豐富的模塊庫(kù)、靈活的配置、較低資源消耗等優(yōu)點(diǎn)。下面,我們一起深入看一下Nginx的工作機(jī)制 1. Nginx 如何實(shí)現(xiàn)高性能低消耗的呢? 我們從以下幾個(gè)方面說(shuō)明以下:
    的頭像 發(fā)表于 11-11 11:31 ?495次閱讀
    <b class='flag-5'>Nginx</b> 如何實(shí)現(xiàn)高性能低消耗

    Nginx目錄結(jié)構(gòu)有哪些

    很多,例如:新浪、網(wǎng)易、 騰訊等。 為什么要用Nginx? 跨平臺(tái)、配置簡(jiǎn)單、方向代理、高并發(fā)連接:處理2-3萬(wàn)并發(fā)連接數(shù),官方監(jiān)測(cè)能支持5萬(wàn)并發(fā),內(nèi)存消耗?。洪_(kāi)啟10個(gè)nginx才占150M內(nèi)存 ,
    的頭像 發(fā)表于 11-11 11:27 ?534次閱讀
    <b class='flag-5'>Nginx</b>目錄結(jié)構(gòu)有哪些

    C++異步日志實(shí)踐

    一個(gè)高效可拓展的異步C++日志庫(kù):RING LOG,本文分享了了其設(shè)計(jì)方案與技術(shù)原理等內(nèi)容 導(dǎo)論 同步日志與缺點(diǎn) 傳統(tǒng)的日志也叫同步日志,每次調(diào)用一次打印
    的頭像 發(fā)表于 11-09 10:29 ?530次閱讀
    C++異步<b class='flag-5'>日志</b>實(shí)踐

    如何通過(guò)阿里云日志服務(wù)搭建一套通過(guò)Python上傳日志的監(jiān)控服務(wù)

    時(shí)間,因此如果能使用市面上現(xiàn)成的系統(tǒng)會(huì)很方便。 本文將教你如何通過(guò)阿里云日志服務(wù)搭建一套通過(guò)Python上傳日志、配置日志告警的監(jiān)控服務(wù)。 1.準(zhǔn)備 開(kāi)始之前,你要確保Python和p
    的頭像 發(fā)表于 10-21 14:43 ?770次閱讀
    如何通過(guò)阿里云<b class='flag-5'>日志</b>服務(wù)搭建一套通過(guò)Python上傳<b class='flag-5'>日志</b>的監(jiān)控服務(wù)

    Nginx常用配置與命令

    對(duì)于前端來(lái)說(shuō) Node.js 并不陌生, Nginx 和 Node.js 的很多理念類似, HTTP 服務(wù)器、事件驅(qū)動(dòng)、異步非阻塞等,且 Nginx 的大部分功能使用 Node.js 也可以實(shí)現(xiàn),但 Nginx 和 Node.j
    發(fā)表于 10-18 10:04 ?319次閱讀
    <b class='flag-5'>Nginx</b>常用<b class='flag-5'>配置</b>與命令

    不用Nginx,只用Tomcat的Http請(qǐng)求流程

    只用Tomcat,不用Nginx搭建Web服務(wù),行不行?我曾經(jīng)提出的愚蠢問(wèn)題,今天詳細(xì)給自己解釋下,為什么必須用Nginx!
    的頭像 發(fā)表于 10-17 10:54 ?561次閱讀