1강 - Context Logic
NGINX 기본 명령어
nginx -v
: NGINX 버전 확인nginx -t
: configuration syntax 검사 (테스트, 보통 push 전에 사용)nginx -T
: 인스턴스의 현재 configuration 확인nginx -s reload
: configuration 파일을 인스턴스로 push
-t, -T는 sudo 권한이 필요합니다.
Configuration 파일 위치
- main configuration 파일 경로:
/etc/nginx/nginx.conf
- include(커스텀 로직) 경로:
/etc/nginx/conf.d/*.conf
Context 구조 및 설명
configuration = context + directives
각 configuration은 한 개의 Main, HTTP context를 가집니다.
Context 구조 개요
- Main
- Events
- HTTP
- Server
- Location
- Upstream
- Server
- Stream
- Server
- Upstream
0️⃣ Main
최상위 레벨 directive로 구성됨
- worker 프로세스 수
- 리눅스 사용자명
- PID
- 로그 파일 위치
1️⃣ Events
- worker 프로세스에 할당된 연결 개수
1️⃣ HTTP
HTTP context에서 사용되는 directive는 자식 context(ex.Server, Upstream, Location)에 상속됨
- NGINX가 http, https 연결을 처리하는 방법을 정의
- 백엔드 서버/어플리케이션 pool 설정
1️⃣ Stream
NGINX가 3, 4계층 트래픽을 처리하는 방법을 정의
- TCP
- UDP
Server
virtual server(프로세스가 http 요청 받는 가상 호스트) 정의
- 도메인
- IP 주소
- Unix 소켓 으로 정의될 수 있음
Upstream
백엔드 서버 그룹 정의
기본적으로 load balancing에 사용
- 어플리케이션 서버
- 웹 서버
Location
정의한 URI를 기반으로 가상 서버가 http 요청을 처리하는 추가적인 방법 정의
- 파일 경로
- 문자열 매칭
Directive란?
주어진 NGINX 동작을 제어하는 단일 명령문
Block
directive들이 중괄호로 묶인 영역
주의사항
NGINX는 include
directive로 configuration들을 읽을 때 알파벳 순으로 읽어들입니다.