cdnstats icon indicating copy to clipboard operation
cdnstats copied to clipboard

CDNStat is a daemon collecting various statistics from nginx requests: request count, sent bytes, referer, URI path.

CDNStats

CDNStat is a daemon collecting various statistics from nginx requests: request count, sent bytes, referer, URI path.

Installation

git clone git://github.com/antage/cdnstats
GOPATH=./cdnstats go install cdnstats
cdnstats/bin/cdnstats -h x.x.x.x -p pppp

Where x.x.x.x is host name, pppp is port number. Default values: 127.0.0.1:9090

Now you can open browser at http://x.x.x.x:pppp/ for web-page displaying statistics.

How to setup Nginx?

Configuration example:

server {
    location / {
        root /var/www;
        post_action @stats; # after each request send information to cdnstats
    }

    location @stats {
        proxy_pass http://x.x.x.x:pppp/collect?bucket=[bucket name]&s=[hostname]&uri=$uri;
        # don't wait too long
        proxy_send_timeout 5s;
        proxy_read_timeout 5s;

        # optional header if you use domain name instead of ip-address x.x.x.x
        # proxy_set_header Host cdnstat.example.org;

        # this headers are used by cdnstats
        proxy_set_header X-Bytes-Sent $body_bytes_sent;
        # Referer header is sent implicitly

        # delete unused headers
        proxy_set_header Accept "";
        proxy_set_header Accept-Encoding "";
        proxy_set_header Accept-Language "";
        proxy_set_header Accept-Charset "";
        proxy_set_header User-Agent "";
        proxy_set_header Cookie "";

        # don't send POST-request body
        proxy_pass_request_body off;
    }
}