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 블록
- url 경로(위치)별 설정 블록
- [참고 – 정규표현식]
# 시작 경로가 동일한 경우
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;
}
댓글 한 개
핑백 :