NGINX Configuration 과 Logic

개발 99·2025년 2월 25일

NGINX

목록 보기
1/3

Nginx Basic Commands

  • $ nginx -v
    : NGINX 버전을 출력합니다

  • $ nginx -t
    : 푸시하려는 구성(Configuration)에 문제가 없는지 확인하기 위해 구문의 유효성을 검사합니다.

  • $ nginx -T
    : 현재 NGINX인스턴스에서 구현된 구성(Configuration)을 보여줍니다.

  • $ nginx -s reload
    : 구성을 가져와 기존 인스턴스로 푸시합니다.

Configuration File( Location )

  • Main File
    : /etc/nginx/nginx.conf ( nginx.conf 파일의 기본 위치 )

NGINX 인스턴스를 Configuration하는 모든 Includes 설정 파일을
conf.d 디렉토리의 하위에 넣는 것입니다.

  • Includes
    : /etc/nginx/conf.d/*.conf

그리고 기본 nginx 파일의 include 지시문을 사용하여 모든 Configuration을 구성합니다.

Configuration Contexts


Each NGINX Configuration has

  • One Main context

  • One HTTP context

NGINX는 Context와 Directive의 조합으로 구성됩니다.

Context는 다음을 포함합니다.

  • Main

  • Events

  • HTTP

  • Stream
    ( 더 있지만, 위에 4개가 기본 또는 최상위 Context임. )

각 Context 내에는 자식 Context도 있습니다.

1. Main Context(Highest Level)

  • Worker Processes 수
  • Linux username
  • Configuration 위치
  • Log file 위치
  • Process ID (PID)

모든 항목의 엑세스 권한과 같은 가장 높은 수준의 지시사항을 선언합니다.(루트)

2. Events Context

Contains connection processing directives
( Number of connection per worker process )

각 Worker 프로세스에 할당된 연결수를 관리하는데 사용됩니다.

3. HTTP Context

Determines how NGINX handles HTTP & HTTPS conncetions

  • Address of pool of back end servers

NGINX가 HTTP & HTTPS 연결을 처리하는 방법을 정의합니다.

HTTP Context에서 사용되는 지시문(Directive)는
Upstream, Server 및 자신 Context인 Location에 상속됩니다.

Server Context

Defines virtual server that responds to a request for:
Virtual Server는 아래와 같을 수 있다.

  • Domain name
  • IP address
  • Unix socket

Virtual 서버를 정의합니다.( HTTP 요청을 받는 가상 호스트라고도 한다. )

Upstream

Defines a group of backend servers

  • Application Servers
  • Web Servers

백엔드 애플리케이션, 웹 서비스 그룹을 정의합니다.
( 기본적으로 로드 밸런싱 사용 )

Location

Defines how NGINX response to an HTTP request based on requested URI:

  • Point to a path
  • String matching

특정 URI를 기반으로 가상 서버가 HTTP 요청을 처리하는 방법을 추가로 정의합니다.
Location은 파일 시스템의 port를 가리킬 수 있습니다.
( 특정 파일 시스템으로 라우팅을 한다.
만약, proxy_pass를 할 경우 특정 URL로 리다이렉팅을 한다.)

4. Stream

Defines handling of Layer 3 and Layer 4 traffic

  • TCP
  • UDP

Layer 3와 Layer 4 TCP 및 UDP와 같은 트래픽을 처리하는 방법을 정의합니다.

Directives

  • Directive : a statement that controls NGINX Behavior ( NGINX 동작을 제어하는 단일 명령문 )
  • Block : a group of directives in a context ( 중괄호로 묶인 지시문 )

  • NGINX가 80번 포트를 수신하도록 지시한다 = listen 80

  • 루트 지시어는 본질적으로 파일 시스템의 경로를 가리키고 있습니다.( 절대경로 )

참고

참고로 NGINX는 1개의 마스터 프로세스와 다수의 Worker 프로세스로 구성되어 있다.

include 지시어는 이름 그대로 지정된 파일을 포함시킵니다. 별도의 구성을 재사용하기 위해 파일로 분리하고 가져올 때 사용됩니다.

nginx가 inlcude 매개변수에 포함된 구성을 알파벳 순서로 읽는 점을 유의해야 한다.
( 예로, defaut.conf 읽고, 그 다음 web.conf를 읽는다 )

profile
구구구구구!

0개의 댓글