Pregunta

Estoy utilizando nginx y Redis en mi página web. Durante varios artículos en mi sitio, quiero añadir params seguimiento a sus direcciones URL para que cuando un usuario hace clic en un elemento, puedo recoger estadísticas de uso del usuario aparte de servir al usuario contenido solicitado. Busco métodos sobre cómo capturar esta estadística en Redis de nginx, es decir, sin golpear la aplicación de fondo.

Por ejemplo., Supongamos que tengo varias filas de mesas en mi página y cada uno de los elementos de retención tabla en formato de fila / columna. Así, por un elemento en la tabla {: 2, fila: 1, columna: 3} Si la URL real es: www.mysite.com/news/dodi, entonces quiero incrustar la url: www.mysite.com/news / dodi / día = 29? tabla = 2 & fila = 1 & columna = 3. Cuando el usuario hace clic en él, nginx llegará a Redis para ir a buscar el contenido y también actualizar las estadísticas correspondientes (aquí puede ser la subasta el día 29, la tabla-2, ...).

Cualquier sugerencia sobre cómo lograr esto sin golpear la aplicación de fondo?

¿Fue útil?

Solución

Para los parámetros de seguimiento, mantener este tipo de trabajo fuera del alcance de la solicitud a los usuarios. No hacen pagar la pena de latencia de estadísticas de seguimiento. Cron un script que extrae los parámetros de access.log y actualiza Redis y / o base de datos.

En cuanto al contenido de almacenamiento en caché, hay un módulo Redis nginx publicado recientemente que funciona de la misma manera que el módulo de memcached. Sólo GET y seleccione se aplica actualmente. La suposición es que su aplicación está poblando la caché.

http://wiki.nginx.org/Nginx3rdPartyModules#HTTP_Redis_Module

nginx.conf muestra:

http
{
 ...
        server {
            location / {
                set $redis_db   "0";
                set $redis_key  "$uri?$args";
                redis_pass      127.0.0.1:6379;
                error_page      404 502 504 = @fallback;
             }

             location @fallback {
                 proxy_pass      backed;
             }
        }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top