Nginx 過濾靜態(tài)資源文件的訪問日志的實(shí)現(xiàn)
凌亂的日志
日常使用的 Nginx 大都既做靜態(tài)資源服務(wù)器,也做反向代理服務(wù)器,尤其有些時(shí)候考慮到跨域問題,會(huì)對(duì)靜態(tài)資源和后端接口使用同一個(gè)監(jiān)聽端口,如果不做一下過濾處理,會(huì)在 access_log 中看到大量的例如 js、css、jpg 等靜態(tài)資源的請(qǐng)求,比較影響查看后端接口調(diào)用的日志
本來沒有很在意這個(gè)東西,不過在瀏覽一篇關(guān)于 Nginx 優(yōu)化的文章時(shí),發(fā)現(xiàn)了一種用 map 定義一個(gè)是否寫日志的參數(shù)的方法,結(jié)合最近使用 map 做動(dòng)態(tài)的跨域配置,索性也是學(xué)習(xí)及記錄一下 map 的另一個(gè)使用場(chǎng)景
使用 map 過濾訪問靜態(tài)資源文件的日志
http {
log_format main '$remote_addr [$time_local] $request $status '
'uct="$upstream_connect_time" rt="$request_time"';
map $uri $not_static {
default 1;
~^(.*\.(gif|jpg|jpeg|png|bmp|swf|js|css|woff|ttf)$) 0;
}
server {
listen 23456;
server_name localhost;
access_log logs/test.log main if=$not_static;
}
}
解釋說明:
- 自定義一個(gè) log_format,標(biāo)識(shí)為 main
- 對(duì)請(qǐng)求中的 uri 做匹配,如果是以 gif、jpg、css、js 等作為結(jié)尾的資源,則 $not_static 為0,否則為1
- 對(duì)訪問23456端口的請(qǐng)求,access_log 指定使用標(biāo)識(shí)為 main 的自定義日志格式,且僅當(dāng) $not_static 為1時(shí)才記錄日志,關(guān)于 if 參數(shù),可參考 官方文檔
- 有一點(diǎn)需要注意,access_log 中使用 if 參數(shù)時(shí),必須顯式指定一個(gè) log_format,否則會(huì)報(bào)錯(cuò): nginx: [emerg] unknown log format "if=$not_static"
另一種動(dòng)靜分離日志寫法
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css|woff|ttf)$ {
#access_log off; #不輸出訪問靜態(tài)資源的日志
access_log logs/static_resources.log;
}
到此這篇關(guān)于Nginx 過濾靜態(tài)資源文件的訪問日志的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Nginx 訪問日志內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
簡(jiǎn)介Nginx服務(wù)器的Websockets配置方法
這篇文章主要介紹了簡(jiǎn)介Nginx服務(wù)器的Websockets配置方法,是使用Nginx服務(wù)器的網(wǎng)管的必備知識(shí)XD~需要的朋友可以參考下2015-06-06
使用Nginx和Lua進(jìn)行JWT校驗(yàn)介紹
大家好,本篇文章主要講的是使用Nginx和Lua進(jìn)行JWT校驗(yàn)介紹,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下2021-12-12
nginx location優(yōu)先級(jí)的深入講解
這篇文章主要給大家介紹了關(guān)于nginx location優(yōu)先級(jí)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
nginx 部署 vue 項(xiàng)目找不到j(luò)s css文件的解決方法
這篇文章主要介紹了nginx 部署 vue 項(xiàng)目找不到j(luò)s css文件的解決方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
Nginx訪問本地靜態(tài)資源詳細(xì)步驟(推薦)
Nginx?(engine?x)?是一個(gè)高性能的HTTP和反向代理web服務(wù)器,同時(shí)也提供了IMAP/POP3/SMTP服務(wù),這篇文章主要介紹了nginx配置訪問本地靜態(tài)資源,需要的朋友可以參考下2022-12-12

