黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Nginx日志配置記錄

Nginx日志配置記錄

更新時間:2021-09-22 10:14:15 來源:動力節(jié)點 瀏覽1809次

在本地或通過 syslog 捕獲日志文件中有關(guān)錯誤和請求處理的詳細(xì)信息。

本文介紹了如何在 NGINX Open Source 和 NGINX Plus 中配置錯誤和已處理請求的日志記錄。

設(shè)置錯誤日志

NGINX 將有關(guān)遇到的不同嚴(yán)重性級別的問題的信息寫入錯誤日志。在error_log中 指令集日志記錄到一個特定的文件,stderr或syslog與指定消息的最低嚴(yán)重級別登錄。默認(rèn)情況下,錯誤日志位于logs/error.log(絕對路徑取決于操作系統(tǒng)和安裝),并且記錄來自指定級別以上的所有嚴(yán)重級別的消息。

下面的配置將要記錄的錯誤消息的最低嚴(yán)重性級別從error更改為warn:

error_log logs/error.log warn;

在這種情況下,消息warn,error crit,alert,和emerg水平被記錄。

錯誤日志的默認(rèn)設(shè)置全局有效。要覆蓋它,請將error_log 指令放在main(頂級)配置上下文中。main上下文中的設(shè)置始終由其他配置級別 ( http、server、location)繼承。所述error_log指令可以在被同時指定的HTTP ,流 ,server和位置 的水平,并覆蓋從較高級別繼承設(shè)置。如果出現(xiàn)錯誤,消息只會寫入一個錯誤日志,該日志最接近發(fā)生錯誤的級別。但是,如果error_log在同一級別指定了多個指令,則消息將寫入所有指定的日志。

注意:error_log在 NGINX 開源版本1.5.2 中添加了在同一配置級別指定多個指令的能力 。

設(shè)置訪問日志

NGINX 在處理請求后立即將有關(guān)客戶端請求的信息寫入訪問日志。默認(rèn)情況下,訪問日志位于logs/access.log,信息以預(yù)定義的組合格式寫入日志。要覆蓋默認(rèn)設(shè)置,請使用log_format 指令更改記錄消息的格式,以及使用access_log 指令指定日志的位置及其格式。日志格式是使用變量定義的。

以下示例定義了日志格式,該格式使用指示響應(yīng)的 gzip 壓縮比率的值擴展了預(yù)定義的組合格式。然后將該格式應(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;
        ...
    }
}

日志格式的另一個示例可以跟蹤 NGINX 和上游服務(wù)器之間的不同時間值,這可能有助于在您的網(wǎng)站速度變慢時診斷問題。您可以使用以下變量來記錄指示的時間值:

$upstream_connect_time – 與上游服務(wù)器建立連接所花費的時間

$upstream_header_time – 從建立連接到從上游服務(wù)器接收響應(yīng)頭的第一個字節(jié)之間的時間

$upstream_response_time – 從建立連接到從上游服務(wù)器接收響應(yīng)體的最后一個字節(jié)之間的時間

$request_time – 處理請求所花費的總時間

所有時間值都以毫秒為單位測量。

http {
    log_format upstream_time '$remote_addr - $remote_user [$time_local] '
                             '"$request" $status $body_bytes_sent '
                             '"$http_referer" "$http_user_agent"'
                             'rt=$request_time uct="$upstream_connect_time" uht="$upstream_header_time" urt="$upstream_response_time"';
    server {
        access_log /spool/logs/nginx-access.log upstream_time;
        ...
    }
}

在讀取結(jié)果時間值時,請記住以下幾點:

當(dāng)一個請求通過多個服務(wù)器處理時,該變量包含多個以逗號分隔的值

當(dāng)存在從一個上游組到另一組的內(nèi)部重定向時,值用分號分隔

當(dāng)請求無法到達(dá)上游服務(wù)器或無法接收完整標(biāo)頭時,該變量包含0(零)

如果在連接到上游時發(fā)生內(nèi)部錯誤或從緩存中獲取回復(fù)時,該變量包含-(連字符)

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

要啟用日志文件描述符的緩存,請使用open_log_file_cache 指令。

與該error_log指令類似,在 特定配置級別上定義的access_log指令會覆蓋先前級別的設(shè)置。當(dāng)請求處理完成時,消息將寫入在當(dāng)前級別配置的或從先前級別繼承的日志中。如果一級定義了多個訪問日志,則消息將寫入所有這些日志。

啟用條件記錄

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

此示例排除具有 HTTP 狀態(tài)代碼2xx(成功)和3xx(重定向)的請求:

map $status $loggable {
    ~^[23]  0;
    default 1;
}
access_log /path/to/access.log combined if=$loggable;

用例:采樣 TLS 參數(shù)

許多客戶端使用早于 TLS 1.3 的 TLS 版本。盡管許多密碼被聲明為不安全,但較舊的實現(xiàn)仍在使用它們;ECC 證書提供比 RSA 更高的性能,但并非所有客戶端都可以接受 ECC。許多 TLS 攻擊依賴于“中間人”,他攔截密碼協(xié)商握手并強制客戶端和服務(wù)器選擇安全性較低的密碼。因此,重要的是將 NGINX Plus 配置為不支持弱密碼或舊密碼,但這樣做可能會排除舊客戶端。

您可以評估從客戶端獲得的 SSL 數(shù)據(jù),并確定在刪除對舊 SSL 協(xié)議和密碼的支持時排除的客戶端比例。

以下配置示例記錄User-Agent任何連接的 TLS 客戶端的 SSL 協(xié)議、密碼和標(biāo)頭,假設(shè)每個客戶端選擇它支持的最新協(xié)議和最安全的密碼。

在此示例中,每個客戶端都由其唯一的 IP 地址和用戶代理組合標(biāo)識。

1.定義自定義日志格式sslparams,包括 SSL 協(xié)議的版本 ( $ssl_protocol )、連接中使用的密碼 ( $ssl_cipher )、客戶端 IP 地址 ( $remote_addr ) 和標(biāo)準(zhǔn)User AgentHTTP 請求字段的值( $http_user_agent):

log_format sslparams '$ssl_protocol $ssl_cipher '
                  '$remote_addr "$http_user_agent"';

2.定義一個鍵值存儲,用于保存客戶端及其用戶代理的 IP 地址,例如clients:

keyval_zone zone=clients:80m timeout=3600s;

3.創(chuàng)建的變量,例如,$seen對于的每個唯一組合$remote_addr和User-Agent標(biāo)頭:

keyval $remote_addr:$http_user_agent $seen zone=clients;
server {
    listen 443 ssl;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers   HIGH:!aNULL:!MD5;
    if ($seen = "") {
        set $seen  1;
        set $logme 1;
    }
    access_log  /tmp/sslparams.log sslparams if=$logme;
    # ...
}

4.查看使用此配置生成的日志文件:

TLSv1.2 AES128-SHA 1.1.1.1 "Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0"
TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 2.2.2.2 "Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1"
TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 3.3.3.3 "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:58.0) Gecko/20100101 Firefox/58.0"
TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 4.4.4.4 "Mozilla/5.0 (Android 4.4.2; Tablet; rv:65.0) Gecko/65.0 Firefox/65.0"
TLSv1 AES128-SHA 5.5.5.5 "Mozilla/5.0 (Android 4.4.2; Tablet; rv:65.0) Gecko/65.0 Firefox/65.0"
TLSv1.2 ECDHE-RSA-CHACHA20-POLY1305 6.6.6.6 "Mozilla/5.0 (Linux; U; Android 5.0.2; en-US; XT1068 Build/LXB22.46-28) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.10.2.1164 Mobile Safari/537.36"

5.處理日志文件以確定數(shù)據(jù)的傳播:

cat /tmp/sslparams.log | cut -d ' ' -f 2,2 | sort | uniq -c | sort -rn | perl -ane 'printf "%30s %s\n", $F[1], "="x$F[0];'

在此輸出中,識別出低容量、安全性較低的密碼:

ECDHE-RSA-AES128-GCM-SHA256 =========================
ECDHE-RSA-AES256-GCM-SHA384 ========
                 AES128-SHA ====
ECDHE-RSA-CHACHA20-POLY1305 ==
    ECDHE-RSA-AES256-SHA384 ==

然后您可以檢查日志以確定哪些客戶端正在使用這些密碼,然后決定從 NGINX Plus 配置中刪除這些密碼。

記錄到系統(tǒng)日志

該syslog實用程序是計算機消息日志記錄的標(biāo)準(zhǔn),允許從單個系統(tǒng)日志服務(wù)器上的不同設(shè)備收集日志消息。在 NGINX 中,日志記錄到 syslog 是使用error_log 和access_log 指令中的syslog:前綴配置的。

系統(tǒng)日志消息可以發(fā)送到一個server=域名、IP 地址或 UNIX 域套接字路徑。可以使用端口指定域名或 IP 地址以覆蓋默認(rèn)端口514. 可以在unix:前綴后指定 UNIX 域套接字路徑:

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

在示例中,NGINX 錯誤日志消息在debug日志級別寫入 UNIX 域套接字,訪問日志寫入具有 IPv6 地址和端口的系統(tǒng)日志服務(wù)器1234。

該facility=參數(shù)指定記錄消息的程序類型。默認(rèn)值為local7。其他可能的值是:auth, authpriv, daemon, cron, ftp, lpr, kern, mail, news, syslog, user, uucp, local0 ... local7。

該tag=參數(shù)將自定義標(biāo)記應(yīng)用于系統(tǒng)日志消息(nginx在我們的示例中)。

該severity=參數(shù)設(shè)置訪問日志的系統(tǒng)日志消息的嚴(yán)重性級別。嚴(yán)重程度的增加順序可能的值有:debug,info,notice,warn,error(默認(rèn)), ,crit,alert和emerg。消息記錄在指定級別和所有更嚴(yán)重的級別。在我們的例子中,嚴(yán)重程度error也使crit,alert和emerg被記錄的水平。

實時活動監(jiān)控NGINX Plus 提供實時活動監(jiān)控界面,顯示HTTP 和TCP 上游服務(wù)器的關(guān)鍵負(fù)載和性能指標(biāo)。

如果對Nginx感興趣,不妨來關(guān)注一下動力節(jié)點Nginx視頻教程,課程內(nèi)容詳細(xì),通俗易懂,適合初學(xué)者學(xué)習(xí),希望對大家能夠有所幫助。

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: aa毛片免费全部播放完整 | 天堂va欧美ⅴa亚洲va一国产 | 最近中文字幕在线 | 国产成人v视频在线观看 | 丝袜久久 | 亚洲无线视频 | 伊人精品国产 | ririai99在线视频观看 | 国产精品欧美在线观看 | 美女视频黄8频a美女大全软 | 在线色站 | 亚洲激情综合在线 | 日韩免费无砖专区2020狼 | 国产伊人网 | 一个人看日本www | 亚洲福利天堂网福利在线观看 | 一级特级毛片免费 | 五月天婷婷免费视频 | 欧美手机在线视频 | 国产欧美日韩综合精品无毒 | 色哟哟www网站入口成人学校 | 亚洲久操 | 国产综合精品在线 | 在线一级黄色片 | 日韩在线视频网址 | 一级毛片高清 | www日| 色片免费| 草逼视频免费观看 | 韩国在线视频 | 三级网站免费 | 国产小视频在线观看www | 在线播放你懂得 | 日本精品不卡 | 久久99国产这里有精品视 | 甜性涩爱手机在线观看 | 欧美精品在欧美一区二区 | 我要看一级大片 | ririai99在线视频观看 | 久久综合九色综合狠狠97 | 动漫美女胸被狂揉扒开吃奶动态图 |