ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • NGINX 1: 주요 설정 파일 및 명령어 알아보기
    DevOps 2023. 3. 7. 18:24
    반응형

     

     

    NGINX의 주요 설정 파일과 명령어를 알아보고 정적 콘텐츠 서비스를 해보자.

     

    1. 주요 설정 파일 및 디렉터리 알아보기

    /etc/nginx/

    • NGINX 서버가 사용하는 기본 설정이 저장된 루트 디렉터리이다.
    • NGINX는 이곳에 저장된 설정 파일의 내용에 따라 동작한다.

     

    /etc/nginx/nginx.conf

    • NGINX의 기본 설정 파일로 모든 설정에 대한 진입점이다.
    • 워커 프로세스 개수, 튜닝, 동적 모듈 적재 등 글로벌 설정 항목을 포함한다.
    • 다른 NGINX 세부 설정 파일에 대한 참조를 지정한다.
    • 하위 디렉터리에 위치한 모든 설정 파일을 포함하는 최상위 http 블록을 가지고 있다.

     

    /etc/nginx/conf.d/

    • 기본 HTTP 서버 설정 파일을 포함한다.
    • 디렉터리 내 파일 중 이름이 .conf로 끝나는 파일은 앞서 언급한 /etc/nginx/nginx.conf 파일이 가진 최상위 http 블록에 포함된다.
    • 이처럼 NGINX 설정은 include 구문을 활용해 구조화함으로써 각 설정 파일을 간결하게 유지하면 좋다.

     

    /var/log/nginx/

    • NGINX의 로그가 저장되는 디렉터리로 access.log와 error.log 파일이 있다.
    • access 로그 파일은 NGINX 서버가 수신한 개별 요청에 대한 로그를 저장한다.
    • error 로그 파일은 오류 발생 시 이벤트 내용을 저장한다.
    • NGINX 설정을 통해 debug 모듈을 활성화했다면 디버그 정보도 error 로그 파일에 기록된다.

     

     

    2. 주요 명령어 알아보기

    nginx -h

    • NGINX 도움말을 표시한다.

     

    nginx -v

    • NGINX 버전 정보를 확인한다.

     

    nginx -V

    • NGINX 버전 정보와 빌드 정보를 확인한다.
    • NGINX 바이너리에 포함된 모듈을 보여주는 설정 인수 값을 확인한다.

     

    nginx -t

    • NGINX 설정을 시험한다.

     

    nginx -T

    • NGINX 설정을 시험하고 결과를 화면에 보여준다.

     

    nginx -s [signal]

    • -s 매개변수는 지정된 신호를 NGINX master 프로세스에 전송한다.
    • [signal] 종류
      • [stop]: NGINX 프로세스가 즉시 동작을 멈추게 한다.
      • [quit]: NGINX가 현재 진행 중인 요청을 모두 처리한 뒤 프로세스를 종료한다. -> graceful shutdown
      • [reload]: NGINX가 설정을 다시 읽어 들이게 한다.
      • [reopen]: 지정된 로그 파일을 다시 열도록 명령한다.

     

    NGINX의 설정 파일을 변경한 뒤 nginx -t 명령으로 시험해 보고 문제가 없다면 nginx -s reload 명령으로 변경된 설정을 다시 읽도록 한다.

     

     

     

    3. 정적 콘텐츠 서비스하기

    server {
    	listen 80 default_server;
    	server_name www.example.com;
        
    	localtion / {
    		root /usr/share/nginx/html;
    		# alias /usr/share/nginx/html;
    		index index.html index.htm;
    	}
    }

    이 설정은 HTTP 프로토콜과 80 포트를 이용해 /usr/share/nginx/html/ 경로에 저장된 정적 콘텐츠를 제공한다.

     

    server

    • NGINX가 처리할 새로운 컨텍스트를 정의한다.

     

    listen

    • NGINX가 80 포트로 들어오는 요청을 수신하게 한다.
    • server 블록에 정의된 내용이 80 포트에 대한 기본 컨텍스트가 되도록 default_server 매개 변수를 사용한다.
    • 필요에 따라 포트를 범위로 설정할 수 있다.

     

    server_name

    • 서버가 처리할 호스트명이나 도메인명을 지정한다.
    • default_server 매개변수를 통해 기본 컨텍스트로 지정되지 않았다면, NGINX는 요청 헤더(Host)값이 server_name 지시자에 지정된 값과 같을 때만 server 블록에 지정된 내용을 수행한다.
    • 즉, 서버가 사용할 도메인이 정해지지 않았다면 예시와 같이 default_server 매개변수를 사용해 기본 컨텍스트를 정의하고 server_name 지시자를 생략할 수 있다.

     

    location

    • URL의 경로인 URI를 기반으로 한다.
    • NGINX는 요청된 URI에 가장 적합한 location을 찾는다.

     

    root

    • 주어진 컨텍스트에서 콘텐츠를 제공할 때 서버의 어떤 경로에서 파일을 찾을지 알려준다.
    • NGINX는 root 지시자에 정의된 경로에 수신한 URI 값을 합쳐 요청된 파일을 찾는다.
    • location 지시자 URI 접두어를 사용했다면 이 값도 root 지시자에 지정한 값과 합쳐진다.
    • location의 URI를 무시하려면 root 대신 alias 지시자를 사용해야 한다.

     

    index

    • URI에 더는 참고할 경로 정보가 없을 때 NGINX가 사용할 기본 파일 혹은 확인할 파일 목록을 알려준다.
    반응형
Designed by Tistory.