在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Linux/ Nginx配置日志
Nginx安裝
Nginx內(nèi)容緩存
Nginx架構(gòu)
Nginx進(jìn)程和運(yùn)行時(shí)控制
Nginx配置虛擬機(jī)
Nginx從源碼構(gòu)建安裝配置
為什么需要Nginx?
Nginx配置文件
Nginx壓縮和解壓
Nginx+PHP7+MySQL5.7(LNMP)環(huán)境配置
Nginx反向代理
Nginx+PHP7源碼安裝配置
Nginx快速入門
Nginx的優(yōu)勢(shì)(優(yōu)點(diǎn))
Nginx教程
Nginx特性
Nginx配置Web服務(wù)器
Nginx配置日志
Nginx配置靜態(tài)內(nèi)容服務(wù)器
Nginx主要應(yīng)用場(chǎng)景(必讀)
Nginx安裝(從Linx包安裝)

Nginx配置日志

本節(jié)介紹如何在NGINX中配置日志記錄錯(cuò)誤和處理的請(qǐng)求。在本文章中將涉及以下內(nèi)容 -

  1. 設(shè)置錯(cuò)誤日志
  2. 設(shè)置訪問日志
  3. 啟用條件日志記錄
  4. 日志記錄到Syslog

1. 設(shè)置錯(cuò)誤日志

NGINX將遇到的不同嚴(yán)重性級(jí)別問題的信息寫入錯(cuò)誤日志。 error_log指令將日志記錄設(shè)置為特定文件,stderrsyslog,并指定要記錄的消息的最低級(jí)別。 默認(rèn)情況下,錯(cuò)誤日志位于{NGING_INSTALL_PATH}/logs/error.log(絕對(duì)路徑取決于操作系統(tǒng)和安裝),并記錄來自所指定的所有嚴(yán)重級(jí)別的消息。

以下配置將錯(cuò)誤消息的最小嚴(yán)重性級(jí)別更改為從錯(cuò)誤記錄到警告:

error_log logs/error.log warn;
## 或者可寫為: error_log /var/logs/nginx/error.log warn;

在這種情況下,將記錄 warn, error crit, alertemerg 級(jí)別的消息。
錯(cuò)誤日志的默認(rèn)設(shè)置全局工作。 要覆蓋它,將error_log指令放在 main (頂級(jí))配置上下文中。main 上下文中的設(shè)置始終由其他配置級(jí)別繼承。 還可以在 http, stream, serverlocation 級(jí)別指定error_log指令,并覆蓋從較高級(jí)別繼承的設(shè)置。 如果發(fā)生錯(cuò)誤,則該消息只寫入一個(gè)錯(cuò)誤日志,最接近發(fā)生錯(cuò)誤的級(jí)別的錯(cuò)誤日志。 但是,如果在同一級(jí)別指定了多個(gè)error_log偽指令,則會(huì)將消息寫入所有指定的日志。

注意:在開源NGINX版本1.5.2中添加了在同一配置級(jí)別指定多個(gè)error_log偽指令的功能。

2. 設(shè)置訪問日志

在處理請(qǐng)求之后,NGINX在訪問日志中寫入有關(guān)客戶端請(qǐng)求的信息。 默認(rèn)情況下,訪問日志位于{NGING_INSTALL_PATH}logs/access.log中,{NGING_INSTALL_PATH}為安裝nginx的目錄,信息以預(yù)定義的組合格式寫入日志。要覆蓋這個(gè)默認(rèn)設(shè)置,請(qǐng)使用log_format指令更改記錄消息的格式,以及access_log指令,以指定日志的位置及其格式。 日志格式使用變量定義。

以下示例定義擴(kuò)展預(yù)定義組合格式的日志格式,其值指示響應(yīng)gzip的壓縮比。 然后將格式應(yīng)用于啟用壓縮的虛擬服務(wù)器。

http {
    log_format compression '$remote_addr - $remote_user [$time_local] '
                           '"$request" $status $body_bytes_sent '
                           '"$http_referer" "$http_user_agent" "$gzip_ratio"';

    server {
        gzip on;
        access_log /spool/logs/nginx-access.log compression;
        ...
    }
}

以下是一些如何讀取生成時(shí)間值的規(guī)則:

  • 當(dāng)通過多個(gè)服務(wù)器處理請(qǐng)求時(shí),變量包含由逗號(hào)分隔的多個(gè)值。
  • 當(dāng)從一個(gè)上游組到另一個(gè)上游組有內(nèi)部重定向時(shí),這些值以分號(hào)分隔。
  • 當(dāng)請(qǐng)求無法到達(dá)上游服務(wù)器或無法接收到完整報(bào)頭時(shí),變量包含“0”(零)。
  • 在連接到上游或從緩存中獲取回復(fù)時(shí)出現(xiàn)內(nèi)部錯(cuò)誤的情況下,該變量包含“ - ”(連字符)。

可以通過啟用緩沖區(qū)的日志消息和名稱包含變量的常用日志文件的描述符緩存來優(yōu)化日志記錄。 要啟用緩沖,請(qǐng)使用access_log指令的緩沖區(qū)參數(shù)來指定緩沖區(qū)的大小。 當(dāng)下一個(gè)日志消息不適合緩沖區(qū)以及其他情況時(shí),緩沖的消息將被寫入日志文件。

要啟用日志文件描述符的緩存,請(qǐng)使用open_log_file_cache指令。
error_log指令類似,在特定配置級(jí)別定義的access_log偽指令將覆蓋以前級(jí)別的設(shè)置。 當(dāng)請(qǐng)求的處理完成時(shí),消息將被寫入到當(dāng)前級(jí)別上配置的日志中,或者從先前的級(jí)別繼承。 如果一個(gè)級(jí)別定義了多個(gè)訪問日志,則會(huì)將消息寫入所有的訪問日志。

3. 啟用條件日志記錄

條件記錄允許從訪問日志中排除瑣碎或不重要的日志條目。在NGINX中,條件日志記錄由access_log偽指令的if參數(shù)啟用。

此示例不包括使用HTTP狀態(tài)代碼2xx(成功)和3xx(重定向)的請(qǐng)求:

map $status $loggable {
    ~^[23]  0;
    default 1;
}

access_log /path/to/access.log combined if=$loggable;

4. 日志記錄到Syslog

syslog實(shí)用程序是計(jì)算機(jī)消息記錄的標(biāo)準(zhǔn),并允許從單個(gè)syslog服務(wù)器上的不同設(shè)備收集日志消息。 在NGINX中,對(duì)syslog的日志記錄使用error_logaccess_log偽指令中的syslog:前綴進(jìn)行配置。

Syslog消息可以發(fā)送到服務(wù)器=可以是域名,IP地址或UNIX域的套接字路徑。 可以使用端口指定域名或IP地址來覆蓋默認(rèn)端口514. 可以在unix:prefix之后指定UNIX域套接字路徑:

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

在該示例中,NGINX錯(cuò)誤日志消息將在調(diào)試日志記錄級(jí)別寫入U(xiǎn)NIX域套接字,并將訪問日志寫入具有IPv6地址和端口1234的syslog服務(wù)器。

facility =參數(shù)指定正在記錄消息的程序類型。 默認(rèn)值為local7。 其他可能的值是:auth,authpriv,daemon,cronftp,lprkern,mail,news,syslog,useruucp,local0local7

tag =參數(shù)將自定義標(biāo)簽應(yīng)用于syslog消息(在我們的示例中為nginx)。

severity =參數(shù)設(shè)置訪問日志的syslog消息的嚴(yán)重性級(jí)別。 嚴(yán)重性越來越高的可能值為:debug,info,noticewarn,error(default)crit,alertemerg。 消息記錄在指定的級(jí)別和更嚴(yán)重的級(jí)別。 在我們的示例中,嚴(yán)重性級(jí)別錯(cuò)誤還使得可以 crit, alertemerg 級(jí)別。