문제

내 웹 사이트에서 nginx와 redis를 사용하고 있습니다. 내 사이트의 여러 항목의 경우 사용자가 항목을 클릭하면 요청 된 콘텐츠 사용자에게 서비스를 제공하는 것 외에 사용자 사용 통계를 수집 할 수 있도록 URL에 매개 변수를 추가하고 싶습니다. 백그라운드 응용 프로그램에 도달하지 않고 Nginx의 Redis 에서이 통계를 캡처하는 방법에 대한 방법을 찾고 있습니다.

예를 들어, 내 페이지에 여러 행의 테이블이 있다고 가정하고 각 테이블이 항목을 행/열 형식으로 유지한다고 가정합니다. 따라서 {table : 2, row : 1, column : 3}의 항목의 경우 실제 URL이 www.mysite.com/news/dodi 인 경우 URL을 포함하고 싶습니다 : www.mysite.com/news /dodi/day = 29? table = 2 & row = 1 & column = 3. 사용자가 클릭하면 Nginx가 Redis를 때리면 컨텐츠를 가져오고 적절한 통계를 업데이트합니다 (여기에서는 29 일, 표 2, ...).

백그라운드 앱을 치지 않고 어떻게이를 달성하는지에 대한 제안이 있습니까?

도움이 되었습니까?

해결책

추적 매개 변수의 경우이 유형의 작업을 사용자 요청 범위를 벗어나십시오. 통계 추적에 대한 대기 시간 페널티를 지불하지 마십시오. CRON Access.Log 및 업데이트 REDIS 및/또는 데이터베이스에서 매개 변수를 추출하는 스크립트.

캐싱 컨텐츠 측면에서, 최근에 출시 된 NGINX REDIS 모듈이 MemCached 모듈과 거의 같은 방식으로 작동합니다. Get and Select 만 현재 구현됩니다. 응용 프로그램이 캐시를 채우고 있다고 가정합니다.

http://wiki.nginx.org/nginx3rdpartymodules#http_redis_module

샘플 nginx.conf :

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;
             }
        }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top