NGINX 상용 설정

14755 단어
버 전 번호 숨 기기
1
2
3
http {
server_tokens off;
}

 
nginx 기본 인증
  • 사용자 비밀번호 생 성
    1
    htpasswd -c /usr/local/nginx/conf/nginx.passwd.db admin

     
  • 비밀번호 업데이트
    1
    htpasswd /usr/local/nginx/conf/nginx.passwd.db admin

     
  • 설정 내용
    1
    2
    3
    4
    location / {
    auth_basic "View is cheap,show me the password!";
    auth_basic_user_file nginx.passwd.db;
    }

     

  • 제한 $httpx_forwarded_for
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    set $allow false;
    if ($http_x_forwarded_for = "185.199.111.153") {
    set $allow true;
    }
    if ($http_x_forwarded_for ~ "10.0.0.*") {
    set $allow true;
    }
    if ($allow = false) {
    return 404;
    }

     
    제한 요청 방법
    1
    2
    3
    if ($request_method !~ ^(GET|POST)$ ) {
    return 405;
    }

     
    필터 특수 UA
    if ($http_user_agent ~* sqlmap|wget|curl) {return 403;}
    그림 도 난 방지 체인
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    location /images/ {
    valid_referers none blocked lengyuewusheng.com www.lengyuewusheng.com;
    if ($invalid_referer) {
    return 403;
    }
    }

    location /images/ {
    valid_referers blocked lengyuewusheng.com www.lengyuewusheng.com;
    if ($invalid_referer) {
    rewrite ^/images/.*\.(gif|jpg|jpeg|png)$ /error.html last;
    }
    }

     
  • "Refer" 요청 헤더 가 지정 한 값 일 때 내장 변수 $invalidrefer 는 빈 문자열 로 설정 되 어 있 습 니 다. 그렇지 않 으 면 이 변 수 는 '1' 로 설 정 됩 니 다.일치 하 는 것 을 찾 을 때 대소 문 자 를 구분 하지 않 습 니 다.
  • valid_referers: 검증 referer
  • none: referer 가 비어 있 도록 허용 합 니 다.
  • blocked: 프로 토 콜 이 없 는 요청 을 허용 합 니 다.

  • 역방향 에이전트 설정
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    http {

    ...

    upstream realservers {
    server 10.0.0.1:8080 weight=3;
    server 10.0.0.2:8080 weight=7;
    }

    server {
    location /admin/ {
    proxy_pass http://realserver;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    }
    }
    }

     
    nginx keepalive 오픈
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    upstream realserver {
    server 10.0.0.1:8080;
    keepalive 10;
    keepalive_timeout 60s; # This directive appeared in version 1.15.3.
    keepalive_requests 100; # This directive appeared in version 1.15.3.
    }
    http {
    keepalive_timeout 75s;
    server {
    location / {
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    proxy_pass http://realserver;
    ...
    }
    }
    }

     
  • keepalive: 모든 nginx worker 가 유지 할 수 있 는 최대 연결 수량 을 1024 로 지정 합 니 다. 기본적으로 nginx 가 client 일 때 keepalive 가 유효 하지 않 습 니 다.
  • proxy_http_version 1.1: keepalive 를 열 려 면 HTTP 프로 토 콜 버 전 을 HTTP 1.1 로 요구 합 니 다.
  • proxy_set_header Connection "": 오래된 프로 토 콜 을 호 환 하고 http 헤드 에 Connection close 로 인 한 keepalive 의 실 효 를 방지 하기 위해 서 는 HTTP 머리의 Connection 을 제때에 제거 해 야 합 니 다.
  • keepalive_requests: 연결 을 유지 하여 서 비 스 를 제공 할 수 있 는 최대 요청 수 를 설정 합 니 다.최대 요청 수 를 보 내 면 연결 이 닫 힙 니 다.
  • keepalive_timeout:
  • upstream 의 keepalivetimeoute 는 ngxhttp_upstream_module 모듈 의 기능 은 1.15.3 이후 의 새로운 기능 으로 남 은 연결 을 유지 하 는 시간 초과 시간 을 설정 합 니 다.
  • upstream 밖의 keepalived 는 ngxhttp_core_module 모듈 의 기능 입 니 다. 첫 번 째 매개 변 수 는 활성 화 된 클 라 이언 트 연결 을 유지 하 는 것 입 니 다. 서버 에서 열 린 상태의 시간 초과 시간 을 유지 합 니 다.0 은 활성 화 된 클 라 이언 트 연결 을 사용 하지 않 음 을 표시 합 니 다.선택 할 수 있 는 두 번 째 매개 변 수 는 'Keep - Alive: timeout = time' 응답 헤더 필드 에 값 을 설정 합 니 다.두 매개 변 수 는 다 를 수 있다.


  • nginx 디 렉 터 리 열기 보기
    1
    2
    3
    4
    5
    6
    7
    server {
    location /download/ {
    autoindex on;
    autoindex_exact_size off;
    autoindex_localtime on;
    }
    }

     
  • autoindex_exact_size: on (기본 값) 일 때 파일 의 정확 한 크기 를 표시 합 니 다. 단 위 는 byte 입 니 다.off 디 스 플레이 파일 의 크기, 단위 KB 또는 MB 또는 GB
  • 로 변경
  • autoindex_localtime: off (기본 값) 에 표 시 된 파일 시간 은 GMT 시간 입 니 다.on 으로 변경 하면 표 시 된 파일 시간 은 서버 시간
  • 입 니 다.
    브 라 우 저 는 파일 내용 을 표시 하지 않 고 파일 을 직접 다운로드 합 니 다.
    1
    2
    3
    if ($request_filename ~* ^.*?\.(txt|pdf)$) {
    add_header Content-Disposition 'attachment';
    }

     
    nginx 사용자 실제 IP 가 져 오기
    1
    2
    3
    4
    5
    6
    7
    set_real_ip_from  10.0.0.0/8;               #           IP    IP ,     。
    set_real_ip_from 192.168.0.0/16;
    real_ip_header X-Forwarded-For; # header IP 。
    real_ip_recursive on; # IP。
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

     
  • X - Forward - For 변 수 는 squid 가 개발 한 것 으로 요청 이 어떤 HTTP 프 록 시 나 부하 분산 기 를 통 과 했 는 지 식별 하고 해당 IP 주소 목록 의 비 rfc 기준 을 기록 하 는 데 사용 되 며, X - Forward - For 가 설정 되 어 있 으 면 proxy 퍼 가기 요청 을 거 칠 때마다 기록 된다.

  • nginx 강제 점프 https
    1
    2
    3
    4
    5
    6
    7
    if ( $scheme = http ){
    return 301 https://$server_name$request_uri;
    }

    if ( $scheme = http ){
    rewrite ^(.*)$ https://$host$1 permanent;
    }

     
    악의 에 못 이 겨 잡다.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    http {
    geo $limited
    {
    default 1;
    10.0.0.0/8 0;
    123.207.144.220/32 0;
    36.110.170.248/30 0;
    118.184.170.248/30 0;
    }

    map $limited $limit {
    1 $binary_remote_addr;
    0 "";
    }
    limit_req_zone $limit zone=reqids:100m rate=10r/s;

    server {
    limit_req zone=reqids burst=2 nodelay;
    }
    }

     
  • geo 화이트 리스트 설정
  • nginx 건강 검진 메커니즘
    check_http_expect_alive [http 2xx | http 3xx | http 4xx | http 5xx] 지 정 된 HTTP 코드 를 되 돌려 줍 니 다.
    nginx 를 통 해 txt 텍스트 파일 의 난 장 판 을 봅 니 다.
  • 파일 접 두 사 는. html 가 아 닌. txt 여야 합 니 다. 그렇지 않 으 면 줄 바 꾸 기 에 문제 가 있 습 니 다.
    1
    2
    3
    server:
    default_type 'text/html';
    charset utf-8,gbk;

     

  • 질문
    1
    2
    3
    4
    location / {
    autoindex on;
    autoindex_localtime on;
    }

     
    nginx try_files
    nginx location @
    nginx 캐 시 설정
    nginx 는 uid 그 레이스 케 일 에 따라
    nginx 동시 연결 수 제한
    nginx 요청 주파수 제한
    nginx 생존 검사
    nginx upstream 백업 메커니즘
    1
    2
    3
    4
    rewrite_log on;
    proxy_ignore_client_abort on;

    expires epoch;

     
    관련 자료
  • Nginx 사용 - 기본 설정
  • 사용자 의 실제 ip 주 소 를 가 져 오 는 nginx 관련 설정
  • Nginx 자체 Realip 모듈 을 사용 하여 사용자 의 실제 IP 주 소 를 가 져 옵 니 다
  • Nginx 실전 시리즈 의 기능 편 - 백 엔 드 노드 건강 검진
  • Nginx 부하 균형 중 백 엔 드 노드 서버 건강 검진 조작 빗질
  • 관 영 · Building nginx from Sources
  • 공식 · TCP 및 UDP 부하 분산
  • 관 영 · Module ngxstream_core_module
  • 관 영 · http ngxhttp_core_module
  • 좋은 웹페이지 즐겨찾기