吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

配置Nginx訪問日志

馬哥Linux運維 ? 來源:入門小站 ? 作者:入門小站 ? 2022-05-24 09:59 ? 次閱讀

Nginx是一個開放源代碼的高性能HTTP和反向代理服務器,負責處理Internet上某些最大站點的負載。在管理NGINX網絡服務器時,你要執行的最常見任務之一就是檢查日志文件。

在對服務器或應用程序問題進行故障排除時,知道如何配置和讀取日志非常有用,因為它們提供了詳細的調試信息

Nginx用兩種類型的日志記錄其事件:訪問日志和錯誤日志。訪問日志記錄有關客戶端請求的信息,錯誤日志記錄有關服務器和應用程序問題的信息。

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

配置Nginx訪問日志

每當處理客戶請求時,Nginx都會在訪問日志中生成一個新記錄。每個事件記錄都包含一個時間戳,并包含有關客戶端和所請求資源的各種信息。訪問日志可以顯示訪問者的位置,訪問者的訪問的頁面等。

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

access_log指令的最基本語法如下:


	

access_loglog_filelog_format;

其中log_file是日志文件的完整路徑,log_format是日志文件使用的格式。可以在httpserverlocation指令的上下文中啟用訪問日志。

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


	

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

/etc/nginx/nginx.conf

為獲得更好的可維護性,建議為每個服務器設置一個單獨的訪問日志文件。在server指令中設置的access_log指令將覆蓋在http指令中設置的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將使用預定義的combined組合格式,如下所示:


	

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

要更改日志記錄格式,請覆蓋默認設置或定義一個新設置。例如,定義一個名為main的新日志記錄格式,它將用添加X-Forwarded-Forheader的值來擴展combined格式,在httpserver中添加以下定義指令:


	

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

要使用新日志格式,請在日志文件后指定其名稱,如下所示:


	

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

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

access_log off;

配置錯誤日志

Nginx將應用程序和常規服務器錯誤的消息寫入錯誤日志文件。如果你在Web應用程序中遇到錯誤,則錯誤日志是你開始進行排查問題的第一個位置。error_log指令啟用并設置錯誤日志的位置和嚴重性級別。它采用以下格式,可以在httpserverlocation上下文中進行設置:

	
		error_loglog_filelog_levellog_level參數設置日志記錄級別。以下是按嚴重性從低到高列出的級別:
  • debug-調試消息。
  • info-信息性消息。
  • notice-公告。
  • warn- 警告。
  • error-處理請求時出錯。
  • crit-關鍵問題。需要立即采取行動。
  • alert-警報。必須立即采取行動。
  • emerg- 緊急情況。系統處于無法使用的狀態。
每個日志級別包括更高級別。例如,如果你將日志級別設置為warn,則Nginx還將記錄errorcritalertemerg消息。未指定log_level參數時,默認為error。 默認情況下,error_log指令在主nginx.conf文件內的http指令上下文中定義:

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

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

日志文件的位置

在大多數Linux發行版中,例如Ubuntu ,CentOS和Debian。默認情況下,訪問和錯誤日志位于/var/log/nginx目錄中。

讀取和理解Nginx日志文件

你可以使用catlessgrepcutawk等命令打開和解析nginx日志文件。以下是使用默認的Nginx日志格式的訪問日志文件的記錄:

	
		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"
		讓我們細分Nginx日志文件記錄的每個字段意味著什么:
  • $remote_addr-192.168.33.1-發出請求的客戶端的IP地址。
  • $remote_user---HTTP身份驗證用戶。未設置用戶名時,此字段顯示-
  • [$time_local]-[15/Oct/201941:46 +0000]
本地服務器時間。
  • "$request"-"GET / HTTP/1.1"-請求類型,路徑和協議。
  • $status-200-服務器響應代碼。
  • $body_bytes_sent-396-服務器響應的大小(以字節為單位)。
  • "$http_referer"-"-"-引薦網址。
  • "$http_user_agent"-Mozilla/5.0 ...-客戶端的用戶代理(網絡瀏覽器)。
使用tail命令實時觀看日志文件記錄:tail -f access.log

審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 服務器
    +關注

    關注

    12

    文章

    9303

    瀏覽量

    86061
  • 源代碼
    +關注

    關注

    96

    文章

    2946

    瀏覽量

    66953
  • nginx
    +關注

    關注

    0

    文章

    154

    瀏覽量

    12233

原文標題:配置 Nginx 訪問與錯誤日志

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    MariaDB配置日志審計

    確認插件路徑下是否有日志審計插件server_audit.so。
    的頭像 發表于 02-05 13:34 ?49次閱讀

    華為 FlexusX 與 Docker+Nginx 的高效整合之路

    。這一高效整合方案,不僅實現了資源的最大化利用,還大幅提升了 Web 應用的訪問速度與穩定性。值此 828 華為云企業上云節之際,我們誠邀您體驗 FlexusX 與 Docker+Nginx
    的頭像 發表于 01-23 17:55 ?89次閱讀
    華為 FlexusX 與 Docker+<b class='flag-5'>Nginx</b> 的高效整合之路

    EulerOS+Nginx+MySQL 部署 GLPI 資產管理系統

    1. 部署環境說明 ??本次環境選擇使用華為云 Flexus 云服務器 X 實例,因為其具有高性能的計算能力、靈活的資源配置、穩定的運行環境、高效的網絡訪問速度、服務的高可用性保證以及多層次的數據
    的頭像 發表于 01-03 09:28 ?194次閱讀
    EulerOS+<b class='flag-5'>Nginx</b>+MySQL 部署 GLPI 資產管理系統

    玩轉Nginx日志管理:高效排查問題的終極指南

    Nginx日志對于統計、系統服務排錯很有用。Nginx日志主要分為兩種:access_log(訪問日志
    的頭像 發表于 12-30 13:50 ?185次閱讀

    Nginx代理轉發實戰:零基礎掌握服務器流量分發技巧

    的url中就會帶上location中的匹配路徑。 ???? 假設下面四種 Nginx配置,都用?http://192.168.1.8/proxy/test.html?進行訪問: 第一種:
    的頭像 發表于 12-09 12:28 ?1004次閱讀

    Nginx日常運維方法Linux版

    Nginx安裝目錄? ? whereis nginx ? 如圖: 執行目錄:/usr/sbin/nginx 模塊所在目錄:/usr/lib64/nginx/modules
    的頭像 發表于 12-06 16:38 ?221次閱讀
    <b class='flag-5'>Nginx</b>日常運維方法Linux版

    「服務器」Nginx Proxy Manager申請cloudflare泛域名

    一概述NginxProxyManager是一個基于Nginx的反向代理管理工具,它提供了一個用戶友好的Web界面,方便用戶管理和配置Nginx反向代理。主要功能包括:簡易的用戶界面:通過圖形界面
    的頭像 發表于 12-06 01:03 ?266次閱讀
    「服務器」<b class='flag-5'>Nginx</b> Proxy Manager申請cloudflare泛域名

    使用lsof實現對linux文件的誤刪除恢復練習

    本文記錄使用lsof實現對linux文件的誤刪除恢復練習。題目如下: 1.確保當前nginx進程運行中 2.刪除日志文件,rm -f /var/log/nginx/access.log 3.以
    的頭像 發表于 11-24 11:14 ?258次閱讀
    使用lsof實現對linux文件的誤刪除恢復練習

    nginx負載均衡配置介紹

    目錄 nginx負載均衡 nginx負載均衡介紹 反向代理與負載均衡 nginx負載均衡配置 Keepalived高可用nginx負載均衡器
    的頭像 發表于 11-10 13:39 ?311次閱讀
    <b class='flag-5'>nginx</b>負載均衡<b class='flag-5'>配置</b>介紹

    nginx日志配置方法

    access_log用來定義日志級別,日志位置。
    的頭像 發表于 10-24 17:43 ?269次閱讀

    日志篇:模組日志總體介紹

    ?今天我們學習合宙模組日志總體介紹,以下進入正文。 一、本文討論的邊界 本文是對合宙 4G 模組, 以及 4G+GNSS 模組的日志功能的總體介紹。通過日志,可以對研發過程中,以及模組運行過程中
    的頭像 發表于 10-24 07:16 ?249次閱讀
    <b class='flag-5'>日志</b>篇:模組<b class='flag-5'>日志</b>總體介紹

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

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

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

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

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

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

    奇怪!應用的日志呢??

    1. 問題回顧 問題背景 是在進行中臺應用中間件遷移過程中,發現存在 項目啟動失敗 或者 項目正常啟動 (jsf正常掛載并正常運行,mq正常發送和消費)但是 無任何日志打印 現象。 更奇怪 的是不打
    的頭像 發表于 06-11 10:48 ?358次閱讀
    奇怪!應用的<b class='flag-5'>日志</b>呢??
    利博国际娱乐| 妈祖棋牌迷| 百家乐官网路子分| 娱乐城开户送钱| 百家乐娱乐城公司| 澳门百家乐官网下注最低| 太阳城小区| 太阳城百家乐网上| 百家乐官网群121398015| 大发888体育注册| 百家乐双面数字筹码| 视频百家乐官网赌法| 盛世国际娱乐城| 百家乐官网网站| 百家乐官网拍照看| 邯郸百家乐官网园真钱区| 大发888体育娱乐场| A8百家乐娱乐场| 大三巴百家乐官网的玩法技巧和规则| 永利百家乐官网开户| 百家乐旺门打法| 大上海百家乐官网的玩法技巧和规则| 百家乐官网有哪几种| 财神娱乐城怎么样| 网络百家乐破| 网上百家乐注册彩金| 新锦江百家乐官网娱乐场开户注册| 百家乐官网怎么玩呀| 棋牌游戏平台开发| 百家乐直揽经验| 百家乐评级导航| 金城百家乐官网买卖路| 百家乐官网高手论坮| 徐汇区| 百家乐网上真钱娱乐场| 澳门百家乐官网网上赌博| 百家乐厅| 百家乐官网变牌桌| 澳门赌场招聘| 威尼斯人娱乐城 老品牌| 葡京百家乐玩法|