user : Nginx Worker Process의 User를 의미한다. Worker Process의 권한을 설정할때 이용한다.
worker-processes : Nginx Worker Process의 개수를 의미한다. 기본값은 1이다.
error-log : Nginx Error Log의 경로를 의미한다.
pid : Nginx Master Process의 PID가 저장되는 Log의 경로를 의미한다.
worker-rlimit-nofile : Nginx Worker Process가 이용할 수 있는 최대 File Desciptor의 개수를 의미한다. 일반적으로 Worker Process 갖을 수 있는 최대 Connection 개수의 2배를 설정한다. 기본값은 1024이다.
worker-connections : Nginx Worker Process가 동시에 갖을 수 있는 최대 Connection의 개수를 의미한다.
1.3. http Block
http Block은 HTTP, HTTPS 관련 설정을 포함하고 있다.
1.3.1 http Block Top
1
2
3
4
5
http {
include conf/mime.types;
include /etc/nginx/proxy.conf;
include /etc/nginx/fastcgi.conf;
index index.html index.htm index.php;
include mime.types : [File 2]를 Include 한다. Nginx에서 이용하기 위한 MIME(Multipurpose Internet Mail Extensions)를 설정한다. MIME은 Image와 영상과 같은 파일을 Text 형태로 전송하기 위한 Encoding/Decoding 기법을 의미한다.
include proxy.conf : [File 3]을 Include 한다. Nginx의 Reverse Proxy 관련 설정을 적용한다.
include fastcgi.conf : [File 4]를 Include 한다. FastCGI 관련 설정을 적용한다.
index : Index Page를 의미한다.
1
2
3
4
5
6
7
8
default-type application/octet-stream; ## Default: text/plain
log-format main '$remote-addr - $remote-user [$time-local] $status '
'"$request" $body-bytes-sent "$http-referer" '
'"$http-user-agent" "$http-x-forwarded-for"';
access-log logs/access.log main;
sendfile on;
tcp-nopush on;
server-names-hash-bucket-size 128; # this seems to be required for some vhosts
default-type : Default MIME를 의미한다.
log-format : HTTP, HTTPS 처리 Log의 format을 의미한다. 기본값은 text/plain이다.
access-log : HTTP, HTTPS 처리 Log의 경로를 의미한다.
sendfile : Static File (Image, Video) 전송시 sendfile() System Call 이용 유무를 의미한다. sendfile() System Call은 2개의 File Descriptor 사이의 Data 전송시 Kernel Level 안에서만 Zero Copy를 기반으로 수행하기 때문에 기존의 read()/write() System Call에 비해서 빠르다.
tcp-nopush : sendfile() System Call 이용시 TCP Socket에 TCP-CORK 설정 유무를 의미한다. TCP-CORK은 TCP Socket으로 Packet 전송시 Packet을 TCP Socket Buffer에 모았다가 한번에 보내도록 설정한다. sendfile on으로 설정되어 있을 경우에만 의미있다.
server-names-hash-bucket-size : Nginx에 등록할 수 있는 최대 Server Name의 개수를 의미한다.
proxy-redirect : Nginx의 Proxied Server로부터 받은 Response의 HTTP Location, Refresh Header를 변경유무를 의미한다. HTTP Location Header는 Resource의 위치가 변경되었을때 변경된 Resource의 URL을 갖고 있는 Header이다. HTTP Refresh Header는 Client가 Refresh를 하도록 명령하는 Header이다.
proxy-set-header Host : HTTP Host Header를 설정한다. HTTP Host Header는 어느 Virtual Host (Server)에 의해서 처리되었는지를 저장하는 Header이다.
proxy-set-header X-Real-IP : HTTP X-Real-IP Header를 설정한다. HTTP X-Real-IP Header는 Client의 IP 정보를 저장하는 Header이다.
proxy-set-header X-Forwarded-For : HTTP X-Forwarded-For Header를 설정한다. HTTP X-Forwarded-For Header는 Client의 IP 정보를 저장하는 Header이다.
client-max-body-size : 허용되는 Client Request의 최대 Body Size를 의미한다.
client-body-buffer-size : Client Request의 Body를 위한 Read Buffer의 크기를 의미한다.