ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Nginx] Web Content Serving 알아보기 ( default.conf )
    Nginx 2024. 3. 18. 07:05
    728x90
    반응형

     

     

    - 목차

     

    들어가며.

    이번 글에서는 Nginx 를 활용하여 웹 서버를 구성하는 방법에 대해서 알아보도록 하겠습니다.

    xml, csv, 이미지 파일 등 여러가지 웹파일을 서빙하는 웹서버를 Nginx 로 구성할 수 있습니다.

    Nginx 로 웹서버를 구성하기 위해서 Nginx 의 설정 파일을 수정해야하는데요.

    default.conf 파일을 통해서 Nginx 웹서버 구성 방법에 대해서 알아보도록 하겠습니다.

     

    Directive.

    server block.

    Nginx 의 default.conf 파일은 일반적으로 아래와 같이 구성됩니다.

    server Block 은 Nginx 웹서버를 구성하기 위한 하위 디렉티브들을 포함하는 블록입니다.

    server {
        listen       80;
        server_name  _;
    
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    }

     

    listen 디렉티브는 Nginx 웹서버가 binding, listening 하게 될 포트 넘버를 설정합니다.

    server_name 디렉티브는 _ 로 설정합니다.

    server_name 디렉티브의 용도는 Nginx 에서 사용하는 Host 또는 Domain 이름을 지정하는 것인데요.

    이번 글에서는 server_name 의 기능이 크게 필요하지 않으므로 _ 인 Empty Value 로 대체합니다.

     

    location block.

    location block 는 웹서버의 설정에서 가장 중요합니다.

    location block 은 여러가지 Directive 들을 제공하는데요.

    웹서버가 서빙하게 될 파일이 저장될 위치와 호스팅할 Pathname 을 설정합니다.

    위 예시에선 Root Path ( / ) 를 /usr/share/nginx/html 디렉토리와 연결합니다.

    그래서 "/" 를 prefix 로 가지는 모든 웹파일 요청은 "/usr/share/nginx/html" 하위 디렉토리의 파일을 서빙하게 됩니다.

     

    index Directive 는 "/usr/share/nginx/html/index.html" 또는 "/usr/share/nginx/html/index.htm" 파일을 "/index" 요청과 바인딩합니다.

     

    새로운 server Block 만들기.

    image 파일들을 서빙하는 새로운 Directory 와 이를 연결하는 server Block 을 생성합니다.

    아래와 같이 "/image/" Pathname 과 연결할 location Block 을 생성합니다.

    디렉토리 주소인 "/usr/share/nginx/image" 와 Request Pathname 인 "/image" 을 연결하는 방법은 아래와 같습니다.

    cat <<EOF> /tmp/default.conf
    server {
        listen       80;
        server_name  _;
    
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
        
        location /image/ {
            root   /usr/share/nginx;
        }    
    
    }
    EOF
    mkdir /tmp/image
    touch /tmp/image/test.jpg
    docker run -d --name nginx \
    -v /tmp/default.conf:/etc/nginx/conf.d/default.conf:ro \
    --mount type=bind,source=/tmp/image,target=/usr/share/nginx/image/ \
    -p 8080:80 nginx

     

    Docker 를 활용하여 default.conf 와 이미지 파일을 추가한 Nginx Container 를 실행합니다.

    그리고 http://localhost:8080/image/test.jpg 요청을 통해서 웹파일을 조회할 수 있게 됩니다.

     

     

    반응형

    'Nginx' 카테고리의 다른 글

    Nginx 구조 알아보기  (0) 2023.10.07
    Nginx HTTP Upstream 알아보기  (0) 2023.09.16
Designed by Tistory.