Nginx

Nginx – 설정 정의

  • user
user nginx;

nginx를 기동하면 master process 와 worker process, cache manager process 3개의 프로세스를 기동한다.
저기서 master process 이외를 기동하는 유저를 지정하는 부분이다.
master process는 root 유저로 기동하게 된다.

  • worker_process
    • nginx는 싱글스레드이기때문에, core 수에 맞춰서 설정
    • auto – 자동 설정
worker_processes auto;

# linux 에서 cpu 정보 확인
grep processor /proc/cpuinfo
  • worker_cpu_affinity
    • CPU 할당을 지정할 경우
worker_cpu_affinity 01 11;
  • worker_rlimit_nofile
    • 프로세스당 파일 디스크립터의 제한
    • worker_connections 의 3~4배가 적정 수준
worker_rlimit_nofile 4096;
  • error_log
# 에러 로그의 위치를 지정
error_log /var/log/nginx/error.log;
  • pid
# PID 저장 위치를 지정
pid /var/run/nginx.pid;
  • linux 에서 시스템 파일디스크립터 를 알기위한 커멘드
cat /proc/sys/fs/file-max

events 블럭

# event모듈의 정의'
events {    ...}
  • worker_connections동시 처리 접속 수
worker_connections 512;
  • multi_accept – 다중 접속 여부
multi_accept on;
  • use
# linux 커널2.6이상일 경우, epoll, BSD 의 경우 kqueue 로 지정
use epoll;

http 블럭

# 웹서버로서 사용할 정의
http {    ...}
http {
  upstream myproject {
    server 127.0.0.1:8000 weight=3;
    server 127.0.0.1:8001;
    server 127.0.0.1:8002;
    server 127.0.0.1:8003;
  }

  server {
    listen 80;
    server_name www.domain.com;
    location / {
      proxy_pass http://myproject;
    }
  }
}

server_tokens

  • server_tokens
    • response header에 nginx 버전를 표시 여부 정의
    • 보안을 위해 off 권장
server_tokens off;
  • include /etc/nginx/mime.types;
    • MIME타입과 확장자의 연관성을 정의
types {
    text/html                             html htm shtml;
    text/css                              css;
    text/xml                              xml;
    image/gif                             gif;
    image/jpeg                            jpeg jpg;
    application/javascript                js;
    ...
}
  • default_type
default_type application/octet-stream;

위의 mime.type 에 확장자부터 MIME 타입을 지정할수 없을경우에, 이것으로 MINE타입이 적용된다.
* 기본값은 text/plain 이다.

  • log_format
    • 로그 포맷 정의 (main, ltsv)
log_format main 'time:$time_iso8601\t'....log_format ltsv 'time:$time_iso8601\t'....
  • access_log
# 로그 경로 지정 - 뒤에 로그 포맷 설정 가능
access_log /var/log/nginx/access.log ltsv;

# 비활성화
access_log off;
  • charset
# response header의 charset 부여
charset UTF-8;

localhost 블록

# 시작 경로가 동일한 경우
location / {
        proxy_pass http://jpro-blog;
}

location /profile {
        proxy_pass http://jpro-profile;
}

# 시작 경로가 동일한 경우 더 이상 다른 경로 검색 중지
location ^~ /upload/ {
    
}

# 정규표현식 - 대소문자 구분 o
location ~ \.(gif|jpg|png)$ {
        add_header Vary "Accept-Encoding";
        add_header Cache-Control "public, no-transform, max-age=31536000";
}

# 정규표현식 - 대소문자 구분 x
location ~* \.(css|js)$ {
        add_header Cache-Control "public, max-age=604800";
        log_not_found off;
        access_log off;
}

location ~*.(mp4|ogg|ogv|svg|svgz|eot|otf|woff|woff2|ttf|rss|atom|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf|cur)$ {
        add_header Cache-Control "max-age=31536000";
        access_log off;
}

댓글 한 개

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.