작성중
📂 목차
📚 본문
Nginx
nginx.conf
Nginx 설정은 기본적으로 지시문(Directives)과 컨텍스트(Contexts)라는 두 가지 주요 요소로 구성됨
기본 문법 규칙
- 단순 지시문: 이름, 매개변수로 구성되며, 공백으로 구분하여 한 줄에 입력되고 세미콜론으로 끝남
user nginx;
worker_processes auto;- 블록 지시문 및 컨텍스트: 단순 지시문과 비슷하지만, 세미콜론 대신 중괄호({ })로 끝나고, 이 중괄호 안에는 다른 지시문(하위 컨텍스트 포함)이 포함될 수 있으며, 이를 컨텍스트 라고 부른다.
http {
# 이 안에 다른 지시문이나 server 블록이 들어갑니다.
}-
주석: # 으로시작
-
계층 구조 및 상속: 기본적으로 config 의 context 구조는 main -> events / http -> server -> location 순서의 계층 구조를 가지며, 상위 컨텍스트의 설정은 하위 컨텍스트로 상속되거나 하위 컨텍스트에서 재정의할 수 있다.
# 메인(main) 컨텍스트: 전역 설정
user nginx;
worker_processes auto; # 사용 가능한 CPU 코어 수에 따라 워커 프로세스 자동 설정
events {
# 이벤트 컨텍스트: 연결 처리 방식 설정
worker_connections 1024;
}
http {
# HTTP 컨텍스트: 웹 서버의 전반적인 동작 설정
include mime.types;
default_type application/octet-stream;
sendfile on;
# 기타 HTTP 관련 설정 (gzip 압축 등)
server {
# 서버 컨텍스트: 특정 도메인 또는 포트에 대한 설정 (가상 호스트)
listen 80; # 80번 포트에서 수신
server_name example.com www.example.com; # 도메인 이름 설정
location / {
# 로케이션 컨텍스트: 특정 URI 경로에 대한 처리 방식 설정
root /var/www/html; # 정적 파일의 루트 디렉토리 설정
index index.html index.htm; # 기본 인덱스 파일 설정
}
location /api/ {
# /api/ 경로에 대한 리버스 프록시 설정
proxy_pass http://localhost:3000; # 백엔드 애플리케이션 서버로 요청 전달
proxy_set_header Host $host;
}
}
}중괄호에 포함안되는 전역적인 곳을 main block 으로 본다.
main block
주요 지시문은 다음과 같다.
userworker_processeserror_loginclude
events block
worker_connectionsuse
http block
serverlocation blockproxy_passrootindexreturnrewrite
listenserver_nameroot
includemime.typessendfilegzip
전부 외울 필요는 없고 그때마다 찾아서 익숙해질 때까지 보면 될거 같다.