본문 바로가기

WEB/NGINX

nginx.conf (2)

nginx.conf (1) 글에 이어서 작성

 

- block directive

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
}

 

② http

httpd 애플리케이션 layer와 3, 4 layer 사이에 관련된 설정을 지정하는 영역

 

log_format

nginx에 의해 요청이 처리된 직후 client 요청에 대한 정보를 access log에 기록
default로 acceslog는 logs/access.log에 위치하고 미리 정의된 결합 형식으로 정보들이 로그에 기록됨
이 default 설정을 재 정의하기 위해 log_format 설정을 사용

 

access_log

log_format 설정에 맞게 저장될 access_log의 위치와 파일 이름을 지정

 

sendfile

sendfile() 사용 여부를 지정
한 파일의 디스크립터와 다른 파일의 디스크립터 간에 데이터를 복사하는 것으로 커널 내부에서 복사가 진행

 

tcp_nopush

client로 패킷이 전송되기 전에 버퍼가 가득 찼는지 체크하여 다 찼다면 패킷을 전송하도록 하여 네트워크 오버헤드를 줄이도록 설정 가능

 

tcp_nodelay

활성화하게 되면 소켓이 패킷의 크기에 상관없이 버퍼에 데이터를 보내도록 함

 

keepalive_timeout

client에서 해당 서버로 keeplive 커넥션을 유지할 시간을 설정

 

types_hash_max_size

hash table의 최대 크기를 설정

서비이름, 맵 지시문 값, MIME 유형, 요청 헤더 문자열의 이름과 같은 정적 데이터 세트를 빠르게 처리하기 위해 nginx는 hash table을 사용

 

include   /etc/nginx/mime.type

해당 nginx 웹 서버의 기본 context-type를 설정

 

default_type   application/octet-stream

일반적으로 nginx에서 해석할 수 없는 프로그램일 경우 기본 값으로 octet-stream 값을 사용하겠다는 의미

 

해당 부분은 mime.type의 타입 중 application에 속하는 부분으로 바이너리 형태의 데이터를 의미

→ 대부분의 브라우저는 이를 이진 파일로 인식 및 처리하여 렌더링을 시도하지 않고 파일 다운로드를 진행

 

 

③ server

listen

nginx 웹 서버의 Listen port를 설정

 

server_name

nginx 웹 서버가 사용할 domain name 등록

ex) http://test1234.co.kr

 

root

OHS의 context-root와 같이 nginx가 사용할 기본 파일의 경로를 지정

 

location

location 뒤에 이어지는 path로 들어오는 요청에 대한 설정

아래의 설정대로라면 nginx를 통해 들어오는 모든 요청에 대한 설정을 반영

location / {

}

 

error_page

각 에러 요청에 대한 에러 페이지를 보여주는 설정

root로 설정한 경로를 따라가기 때문에 해당 경로 설정이 중요

'WEB > NGINX' 카테고리의 다른 글

nginx & WAS 연동  (0) 2024.07.30
nginx Load Balancing  (0) 2024.07.29
nginx ssl 설정  (0) 2024.07.29
nginx.conf (1)  (0) 2024.07.26
nginx 설치  (0) 2024.07.25