lua 를 통 해 Nginx 서버 의 도 난 방지 체인 기능 을 설정 합 니 다.

2252 단어
서버 를 다운로드 할 때 자주 체인 을 도 둑 맞 고 시간 이 지나 면 서버 의 대량의 자원 이 낭비 되 며 서버 가 nginx 를 웹 서버 로 사용 하기 때 문 입 니 다.nginx 의 도 난 방지 체인 방법 은 매우 많 습 니 다. 기 존의 도 난 방지 체인 모듈 nginx - accesskey - 2.0.3 을 사용 하여 nginx 를 컴 파일 할 때 이 모듈 을 추가 하면 됩 니 다.서비스 기타 업무 수요 로 인해 nginx 는 lua 모듈 을 컴 파일 했 기 때문에 lua 를 통 해 서버 의 도 난 방지 체인 기능 을 다운로드 하려 고 합 니 다.(lua 의 Nginx 모듈 lua nginx module 을 통 해 설정 과정 을 자세히 소개 하지 않 습 니 다) accesskey 모듈 을 면제 할 수 있 습 니 다. 원 리 는 처 리 된 다운로드 링크 를 생 성하 고 서버 가 이 다운로드 링크 를 처리 하 는 것 입 니 다. 성공 하면 다운로드 하고 실패 하면 차단 하 는 것 입 니 다. 다음은 상세 한 설정 인 스 턴 스 입 니 다. 첫째, 다운로드 페이지 에 링크 를 생 성 하 는 nginx 설정 입 니 다.download. jb51. net 설정:

server  
{  
    listen    80;  
    server_name download.jb51.net;  
    index index.htm index.html;  
    root /data/www/download;  
    ssi on;  
 
    location /  
    {  
        set_by_lua $downkey '  
            return ngx.md5("encryption" .. ngx.var.remote_addr .. "suffix")  
        ';  
    }  
} 

메모: ssi 를 열 어야 html 페이지 에서 nginx 사용자 정의 변 수 를 가 져 올 수 있 습 니 다. 그래 야 처 리 된 url 을 생 성 할 수 있 습 니 다. 그 중에서 문자열 encryption 과 suffix 는 사용자 정의 로 다른 문 자 를 마음대로 바 꿀 수 있 습 니 다. 다른 사람 이 쉽게 알 아 맞 히 지 못 하 는 문자열 을 만 들 기 위해 서 입 니 다. index. html 코드: 2. 서버 nginx 설정 을 다운로드 합 니 다.

server  
{  
    listen    80;  
    server_name down.jb51.net;  
    index index.htm index.html;  
    root /data/www/down;  
    limit_conn  one 1;  
    set $limit_rate 1000k;  
 
  location /  
    {  
        set_by_lua $foo '  
            if string.sub(ngx.var.uri, 2, 33) == ngx.md5("encryption" .. ngx.var.remote_addr .. "suffix") then  
                return 1 
            else 
                return 0 
            end  
        ';  
 
        if ($foo = 1)  
        {  
            rewrite "^/([0-9a-z]{32})(.*?)$"    $2 break;  
        }  
        if ($foo = 0)  
        {  
            rewrite ^/ http://download.jb51.net/404.htm redirect;  
        }  
    }  
} 

이렇게 링크 를 다른 기계 에 복사 하면 알림 오류 페이지 가 열 립 니 다.

좋은 웹페이지 즐겨찾기