鍍金池/ 問答/Java  Linux/ 如何用nginx統(tǒng)計(jì)帶有特定參數(shù)的url

如何用nginx統(tǒng)計(jì)帶有特定參數(shù)的url

問題描述

現(xiàn)在有個(gè)需求。一個(gè)網(wǎng)站可以直接用url訪問?;蛘哂绵]件的鏈接訪問,郵件的鏈接帶有一個(gè)識(shí)別的參數(shù)?,F(xiàn)在需要記錄通過郵件鏈接訪問網(wǎng)站的次數(shù)。要求在nginx做。

問題出現(xiàn)的環(huán)境背景及自己嘗試過哪些方法

沒用過nginx。束手無策

相關(guān)代碼

// 請(qǐng)把代碼文本粘貼到下方(請(qǐng)勿用圖片代替代碼)

回答
編輯回答
撥弦

可以分析nginx的access.log

2018年6月19日 19:48
編輯回答
陪妳哭

nginx本身的邏輯表達(dá)能力有限,可以配合使用lua,通過Lua進(jìn)行分析統(tǒng)計(jì)。

2017年5月27日 23:59
編輯回答
傲寒

可以先寫個(gè)Linux腳本,統(tǒng)計(jì)nginx的access日志,然后在Java里調(diào)用這個(gè)腳本
shell腳本內(nèi)容可以是簡(jiǎn)單的grep也可以是awk

java調(diào)用腳本代碼如下:

Process process = Runtime.getRuntime().exec("shell腳本.sh");
int execSuccess = process.waitFor();
if (0 == execSuccess) {
    bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
    String resultAmount = "";
    while ((resultAmount = bufferedReader.readLine()) != null) {
        result.append(resultAmount);
    }
    return result.toString().trim();
}
2017年11月21日 22:52
編輯回答
尐懶貓

樓上+1。nginx的默認(rèn)access log格式已經(jīng)包含了query params參數(shù),所以即使你用grep | wc都能快速進(jìn)行統(tǒng)計(jì)

2018年2月26日 22:37