Develop a simple nginx module to count received http requests for each IP address
€10-100 EUR
Concluído
Publicado há mais de 8 anos
€10-100 EUR
Pago na entrega
I need a simple nginx module to be developed
The module will need to accomplish a simple task:
Counting the number of http requests that an IP address does to a website
The requirement is to have available in nginx a new variable:
$remote_addr_request_count_today
It should count the requests filtering them on daily basis
E.g. when IP 1.1.1.1 makes the first HTTP request you'll have:
$remote_addr_request_count_today=0
second request:
$remote_addr_request_count_today=1
and so on...
now imagine you'll end in this at the end of the day:
$remote_addr_request_count_today=250
But at midnight, or the next day the count will be reset to 0 (you can implement this simply storing the IP+date as an hash in your storage for the counter stats
As storage you can use simple flat file writing, SQLite, memcached, mysql or redis (up to you, pick the simpler, flat file should be good enough but needs to be optimized coding to read/write it, to avoid bottlenecks and cuncurrency issues when there's much traffic.
Note: nginx modules are written in C, see here for an example to start, it's a module already working on IP addresses and creating new variables, so this example is very good as a starting point for your work: [login to view URL]