티스토리 뷰

최근 회사일로 Nginx 설정을 하면서 참고할 만한 사이트를 찾아 공유합니다.

기본설정인 nginx.conf를 튜닝한 버전인데 최대한의 속도를 내기 위한 튜닝이라고 합니다.

 

아직 정확하게 파악이 되지 않은 부분들이 많아서 거르고 봐주시길바랍니다.

시간날때마다 각 파라미터가 무엇을 뜻하는지 풀어나가보고자 합니다.

user www-data;
pid /var/run/nginx.pid;
worker_processes auto;
worker_rlimit_nofile 100000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
events {
    worker_connections 2048;
    multi_accept on;
    use epoll;
}
http {
    server_tokens off;
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    access_log off;
    error_log /var/log/nginx/error.log crit;
    keepalive_timeout 10;
    client_header_timeout 10;
    client_body_timeout 10;
    reset_timedout_connection on;
    send_timeout 10;
    limit_conn_zone $binary_remote_addr zone=addr:5m;
    limit_conn addr 100;
    include /etc/nginx/mime.types;
    default_type text/html;
    charset UTF-8;
    gzip on;
    gzip_http_version 1.0;
    gzip_disable "msie6";
    gzip_proxied any;
    gzip_min_length 1024;
    gzip_comp_level 6;
    gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript application/json;
    open_file_cache max=100000 inactive=20s;
    open_file_cache_valid 30s;
    open_file_cache_min_uses 2;
    open_file_cache_errors on;
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

 

해설

  • worker_process - Nginx의 프로세스수. auto로 하면 서버의 core수와 동일하게 설정됨
  • worker_rlimit_nofile - worker프로세스가 최대 열수 있는 파일 수 제한 *worker다 합한수에 해당하는건가?
  • worker_connections - 하나의 worker프로세스가 열수있는 최대 커넥션 수(core2개, worker_connections 2048 = 2*2048)
  • multi_accept on - 가능한한 클라이언트로부터의 요청을 받음 *뭔소리지
  • use epoll - 리눅스커널 2.6이상인경우는 epoll, BSD인 경우에는 kqueue
  • server_tokens - 보안대책으로 에러화면의 nginx버전번호를 표시/비표시 on/off
  • sendfile on - 하드디스크io처리와 socket-io처리의 밸런스를 얻기위해 on으로 해주세요 *뭔소리지..
  • tcp_nopush - 하나의 데이터 패키지에 모든 헤더 정보가 포함되다 *뭔소리지..
  • tcp_nodelay - 데이터를 캐쉬하지 않고 계속 송신시킨다. 리얼타임에 최적 *캐쉬하면 어떻게 동작하는거지?
  • keepalive_timeout - keep-alive타임아웃시간, 조금 짧게 해둔다. *keep-alive하지 않으면 자료가 많을시 자료를 하나 내려받고 접속을 끊고 다시 접속해서 정보 내려받는 과정을 반복하게 되므로 비효율적이됨(파일하나당 접속한번이 되는건가?)
  • client_header_timeout - 클라이언트 타임아웃 시간
  • client_body_timeout - 클라이언트 타임아웃 시간
  • reset_timedout_connection - 비활동클라이언트의 커넥션을 종료
  • send_timeout - 클라이언트에 송신 타임아웃
  • limit_conn_zone $binary_remote_addr zone=addr:5m - 각종key의 공유메모리설정 *뭔말이지..
  • limit_conn addr 100 - 키의 최대 커넥션수 addr은 100에 설정(하나의 IP어드레스는 100커넥션를 요청가능) *뭔말..
  • gzip on - 전송내용을 gzip으로 압축 *쓰면안되는 예외경우가 있나..?
  • gzip_http_version - 압축http버전
  • gzip_disable "msie6" - ie6압축금지 *이게 예외버전인가?
  • gzip_proxied any - 전프록시도압축 *뭔소릴까
  • gzip_comp_level 6 - 압축레벨 설정. 1-9
  • gzip_types - 압축파일타입
  • open_file_cache max=100000 inactive=20s - 캐쉬를오픈하는동시에 최대수와 캐쉬시간도 지정한다. 20초이상 비활동파일은 클리어한다. *위에 tcp_nodelay랑은 관련없는 캐쉬인가??
  • open_file_cache_valid - open_file_cache의 감지간격시간을 체크 *open_file_cache는 또 뭐람
  • open_file_cache_min_uses - open_file_cache의 비액티브파일의최소파일수
  • open_file_cache_errors - 파일의 에러정보도 캐쉬한다

 

차근차근 정리해보겠습니다! - 수정중

 

 

 

 

 

출처: https://gist.github.com/koudaiii/386eb55a29b1adc19c5e

'개발관련 > Nginx' 카테고리의 다른 글

Nginx 멀티도메인 default server만 동작시  (0) 2020.10.09
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함