国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

通過(guò)nginx統(tǒng)計(jì)網(wǎng)站的PV、UV、IP

biaoxiaoduan / 868人閱讀

摘要:最近做項(xiàng)目遇到一個(gè)需求,要求自行統(tǒng)計(jì)網(wǎng)站的,并顯示到后臺(tái)。于是我們可以通過(guò)的日志實(shí)現(xiàn)。獨(dú)立地址以公網(wǎng)為依據(jù),每個(gè)獨(dú)立訪問(wèn)該頁(yè)面,將會(huì)產(chǎn)生一個(gè)。文件在需要統(tǒng)計(jì)的頁(yè)面引入以下文件,生成一個(gè)當(dāng)天過(guò)期的。

最近做項(xiàng)目遇到一個(gè)需求,要求自行統(tǒng)計(jì)網(wǎng)站的PV、UV、IP,并顯示到后臺(tái)。于是我們可以通過(guò)nginx的日志實(shí)現(xiàn)。

概念

UV:獨(dú)立訪客;以cookie為依據(jù),假設(shè)一臺(tái)電腦裝有3個(gè)不同的瀏覽器,分別打開(kāi)同一個(gè)頁(yè)面,將會(huì)產(chǎn)生3個(gè)UV。
PV:訪問(wèn)量;頁(yè)面每訪問(wèn)或刷新一次,將會(huì)產(chǎn)生一個(gè)PV。
IP:獨(dú)立IP地址;以公網(wǎng)IP為依據(jù),每個(gè)獨(dú)立IP訪問(wèn)該頁(yè)面,將會(huì)產(chǎn)生一個(gè)IP。

nginx配置

在vhost的conf文件中配置以下信息,請(qǐng)將此conf文件的權(quán)限設(shè)為777,否則無(wú)法自動(dòng)生成日志文件。

#日志格式化
log_format tongji "$remote_addr - [$time_iso8601]  "$request" "
                        " - $status "User_Cookie:$guid" ";

server {
    listen      80;
    server_name xxx.com;
    index index.html index.htm index.php;
    root /alidata/www/tongji;
    #將cookie中key為guid,value為字母、數(shù)字部分保存為guid
    if ( $http_cookie ~* "guid=([a-zA-Z0-9]*)"){
        set $guid $1;
    }
    if ($time_iso8601 ~ "(d{4}-d{2}-d{2})") {
        set $date $1;
    }
    #訪問(wèn)日志引用“tongji”的格式化,并按照日期分割保存。
    access_log /alidata/www/nginx_log/access_$date.log tongji;
    location ~* ^(.*)$ {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        client_max_body_size 8m;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

js文件

在需要統(tǒng)計(jì)uv的頁(yè)面引入以下js文件,生成一個(gè)當(dāng)天過(guò)期的cookie。

var cookie = {
    //當(dāng)天剩下的毫秒數(shù)
    leftTime: function() {
        var curTamp = new Date().getTime();
        //當(dāng)日凌晨的時(shí)間戳,減去一毫秒是為了防止后續(xù)得到的時(shí)間不會(huì)達(dá)到00:00:00的狀態(tài)
        var curWeeHours = new Date(curDate.toLocaleDateString()).getTime() - 1;
        var passedTamp = curTamp - curWeeHours;
        var leftTamp = 24 * 60 * 60 * 1000 - passedTamp;
        return leftTamp;
    },
    //n:鍵名,v:鍵值,exp:過(guò)期時(shí)間(ms)
    setCookie: function(n, v, exp) {
        var date = new Date()
        date.setTime(date.getTime() + exp);
        document.cookie = n + "=" + escape(v) +
            ((exp == null) ? "" : ";expires=" + date.toGMTString())
    },
    //n為想要取到的鍵值的鍵名
    getCookie: function(n) {
        var reg = /s/g;
        var result = document.cookie.replace(reg, "");
        var resultArr = result.split(";");
        for (var i = 0; i < resultArr.length; i++) {
            var nameArr = resultArr[i].split("=");
            if (nameArr[0] == n) {
                return nameArr[1];
            }
        }
    }
};

//生成隨機(jī)id
var guid = function() {
    function S4() {
        return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
    }
    return (S4() + S4() + S4() + S4() + S4() + S4() + S4() + S4());
};
//如果guid不存在,則生成guid
console.log(cookie.leftTime() / 1000 / 60);
!cookie.getCookie("guid") && cookie.setCookie("guid", guid(), cookie.leftTime());
document.write(document.cookie);

日志文件

內(nèi)容如下

61.141.xxx.xxx - [2019-05-16T15:18:34+08:00]  "GET /ttt.html HTTP/1.1"  - 304 "User_Cookie:032284f362a63e3d375f8176aad4e0d7" 
61.141.xxx.xxx - [2019-05-16T15:18:35+08:00]  "GET /ttt.html HTTP/1.1"  - 304 "User_Cookie:032284f362a63e3d375f8176aad4e0d7" 
61.141.xxx.xxx - [2019-05-16T15:18:35+08:00]  "GET /ttt.html HTTP/1.1"  - 304 "User_Cookie:032284f362a63e3d375f8176aad4e0d7" 
61.141.xxx.xxx - [2019-05-16T15:18:35+08:00]  "GET /ttt.html HTTP/1.1"  - 304 "User_Cookie:032284f362a63e3d375f8176aad4e0d7" 
61.141.xxx.xxx - [2019-05-16T15:18:35+08:00]  "GET /ttt.html HTTP/1.1"  - 304 "User_Cookie:032284f362a63e3d375f8176aad4e0d7" 
61.141.xxx.xxx - [2019-05-16T15:18:35+08:00]  "GET /ttt.html HTTP/1.1"  - 304 "User_Cookie:032284f362a63e3d375f8176aad4e0d7" 

日志分析

命令

//統(tǒng)計(jì)IP
awk "{print $1}" xxx/access.log(你的日志文件路徑) | sort -r |uniq -c | wc -l
//統(tǒng)計(jì)PV
awk "{print $6}" xxx/access.log(你的日志文件路徑) | wc -l
//統(tǒng)計(jì)UV
awk "{print $10}" xxx/access.log(你的日志文件路徑) | sort -r |uniq -c |wc -l

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/40421.html

相關(guān)文章

  • 前端數(shù)據(jù)收集(pv/uv

    摘要:之于網(wǎng)站,就像收視率之于電視,從某種程度上已成為投資者衡量商業(yè)網(wǎng)站表現(xiàn)的最重要尺度。在同一天內(nèi),只記錄第一次進(jìn)入網(wǎng)站的具有獨(dú)立的訪問(wèn)者,在同一天內(nèi)再次訪問(wèn)該網(wǎng)站則不計(jì)數(shù)。 所謂web,即使你我素未謀面,便知志趣相投;足不出戶,亦知世界大。 01 — 什么是PV/UV 網(wǎng)站流量分析,是指在獲得網(wǎng)站訪問(wèn)量基本數(shù)據(jù)的情況下對(duì)有關(guān)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)、分析,從中發(fā)現(xiàn)用戶訪問(wèn)網(wǎng)站的規(guī)律,并將這些規(guī)律與網(wǎng)...

    import. 評(píng)論0 收藏0
  • 前端數(shù)據(jù)收集(pv/uv

    摘要:之于網(wǎng)站,就像收視率之于電視,從某種程度上已成為投資者衡量商業(yè)網(wǎng)站表現(xiàn)的最重要尺度。在同一天內(nèi),只記錄第一次進(jìn)入網(wǎng)站的具有獨(dú)立的訪問(wèn)者,在同一天內(nèi)再次訪問(wèn)該網(wǎng)站則不計(jì)數(shù)。 所謂web,即使你我素未謀面,便知志趣相投;足不出戶,亦知世界大。 01 — 什么是PV/UV 網(wǎng)站流量分析,是指在獲得網(wǎng)站訪問(wèn)量基本數(shù)據(jù)的情況下對(duì)有關(guān)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)、分析,從中發(fā)現(xiàn)用戶訪問(wèn)網(wǎng)站的規(guī)律,并將這些規(guī)律與網(wǎng)...

    lolomaco 評(píng)論0 收藏0
  • 寶塔面板優(yōu)惠券永久版:寶塔Linux面板僅2088元;寶塔windows面板僅2488元

    摘要:寶塔面板優(yōu)惠券永久授權(quán)版多少錢寶塔面板讓運(yùn)維簡(jiǎn)單高效。目前,很多站長(zhǎng)及企業(yè)可能會(huì)購(gòu)買寶塔面板專業(yè)版或企業(yè)版,寶塔面板專業(yè)版僅元寶塔面板專業(yè)版僅元寶塔面板企業(yè)版僅元年寶塔面板企業(yè)版僅元年起。如寶塔數(shù)據(jù)同步工具主從復(fù)制。寶塔面板優(yōu)惠券永久授權(quán)版多少錢?寶塔面板讓運(yùn)維簡(jiǎn)單高效。面板支持Linux與Windows系統(tǒng)。一鍵配置:LAMP/LNMP、網(wǎng)站、數(shù)據(jù)庫(kù)、FTP、SSL,通過(guò)Web端輕松管理云...

    laznrbfe 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<