nginx 다운로드 서버

3003 단어 nginx
도 난 방지 체인 설정
 
nginx 의 wiki 역 에서 제3자 모듈 ngx 를 알 게 되 었 습 니 다.http_accesskey_module, 자체 테스트 를 통 해 효과 적 인 도 난 방지 체인, 특히 파일 다운로드 소의 도 난 방지 체인 에 매우 효과 적 입 니 다.
이 모듈 에 관 한 문 서 는 여기 서 보 세 요. http://wiki.codemongers.com/NginxHttpAccessKeyModule
 
1. NginxHttpAccessKeyModule 모듈 파일 다운로드: Nginx-accesskey-2.0.3.tar.gz;
2. 이 파일 의 압축 을 풀 고 nginx - accesskey - 2.0.3 의 config 파일 을 찾 습 니 다.
이 파일 편집: "$HTTP" 바 꾸 기ACCESSKEY_MODULE 은 "ngx" 입 니 다.http_accesskey_module”
3. 인자 로 nginx 를 다시 컴 파일 합 니 다.shell> ./configure --add-module=path/to/nginx-accesskey 4. nginx 의 conf 파일 을 수정 하고 다음 과 같은 몇 줄 을 추가 합 니 다. location /download {
  accesskey             on;
  accesskey_hashmethod  md5;
  accesskey_arg         "key";
  accesskey_signature   "mypass$remote_addr";
}
그 중에서 accesskey 는 모듈 스위치 입 니 다.accesskey_hashmethod 는 암호 화 방식 MD5 또는 SHA - 1 입 니 다.accesskey_arg 는 url 의 키워드 인자 입 니 다.accesskey_signature 는 암호 화 값 입 니 다. my pass 와 방문 IP 로 구 성 된 문자열 입 니 다.
 
테스트 스 크 립 트 download. php 에 접근:
    $ipkey= md5("mypass".$_SERVER['REMOTE_ADDR']);   $output_add_key="<a href=http://xx/download/xx.rar?key=".$ipkey.">download_add_key</a><br />";
  $output_org_url="<a href=http://xx/download/xx.rar>download_org_path</a><br />";
  echo $output_add_key;
  echo $output_org_url;
?>

원 리 는:
받 아들 인 매개 변수 값 을 통 해 접근 이 합 법 적 인지 판단 합 니 다.여기에 MD5 암호 화 알고리즘 이 한 세트 있다.프론트 데스크 톱 의 웹 페이지 는 사용자 의 IP 에 따라 MD5 값 을 만 들 고 백 엔 드 의 WEB SERVER 는 이 MD5 를 판단 하고 맞 으 면 놓 습 니 다.아니면 거절.브 라 우 저 에서 물리 파일 에 직접 접근 하면 열 수 없습니다.
내 download 디 렉 터 리 아래 file. zip 파일 이 있 습 니 다.대응 하 는 URI 는...http://xx/download/file.zip
사용 ngxhttp_accesskey_모듈 모듈 후http://xx/download/file.zip?key=09093abeac094. 주어진 키 값 이 정확 해야만 다운로드 디 렉 터 리 의 file. zip 를 다운로드 할 수 있 습 니 다.또한 키 값 은 사용자 의 IP 와 관련 된 것 이기 때문에 도 난 을 피 할 수 있 습 니 다.
 
nginx 의 스 레 드 제한 과 대역 폭 제한
여기 nginx 의 표준 모듈 ngx 가 있 습 니 다.http_limit_zone_module,
이 모듈 은 조건 에 따라 세 션 의 병렬 연결 수 를 제어 할 수 있 습 니 다.
http {
  
limit_zone one $binary_remote_addr 10m; \ # 정의 one
    server {
        location /download/ {
            limit_conn   one  1;   #ip 클 라 이언 트, 최대 2 개의 병렬 스 레 드
                limit_rate
 
32k;         #스 레 드 당 최대 다운로드 속도
     }
     if ($request_method !~* ^(GET)$ ) {  #get 방식 만 요청 가능, 기타 접근 방식 403
          return 403;
     }
    }
}

좋은 웹페이지 즐겨찾기