12강 / 20강

NGINX — 손님을 맞는 프런트 데스크

설정 파일 한 장 읽기

NGINX — 손님을 맞는 프런트 데스크
손님은 언제나 nginx를 먼저 만납니다. 뒤에 무엇이 있는지는 모릅니다.

80번 포트에서 손님을 기다리는 프로그램, 그것이 nginx 입니다. 호텔 프런트 데스크를 떠올리세요. 손님은 프런트에게 말하고, 프런트가 알아서 객실이든 식당이든 연결해 줍니다. 손님은 주방이 어디 있는지 몰라도 됩니다.

nginx가 하는 일은 크게 두 가지예요.

📄
정적 파일 주기
이미지·CSS·JS를 디스크에서 바로
➡️
뒤로 넘기기
복잡한 일은 앱에게 (14강)
우리 쇼핑몰의 설정 파일입니다.
🖥️ 내 가상 서버 브라우저 안에서 실행 (계산용)

설정 파일 읽는 법

server {                              ← 사이트 하나 = server 블록 하나
    listen 80;                        ← 몇 번 포트에서 받나
    server_name mallshop.kr;          ← 어떤 Host 헤더를 담당하나(9강)

    location / {                      ← 어떤 주소를 담당하나
        root  /var/www/mallshop;      ← 파일을 어디서 찾나
        index index.html;
    }
}

location / 는 "모든 주소"라는 뜻입니다. location /static/ 를 따로 쓰면 그 주소만 다르게 처리할 수 있어요. nginx는 가장 구체적인 location을 고릅니다. 라우팅 표와 같은 원리죠(5강).

NGINX 실습실 — 설정을 바꾸고 curl 로 결과를 확인합니다
불러오는 중…

고치면 반드시 두 명령

1 sudo nginx -t — 문법 검사. 여기서 걸러야 합니다
↓ ok 라면
2 sudo systemctl reload nginx — 무중단으로 새 설정 적용

reload 는 돌던 연결을 끊지 않고 설정만 갈아 끼웁니다. restart 는 통째로 껐다 켜요. 운영 중에는 reload 를 쓰세요.

이 세 줄이 nginx 작업의 기본 리듬입니다.
🖥️ 내 가상 서버 브라우저 안에서 실행 (계산용)

문법이 틀리면 어떻게 될까요

다행히 nginx는 똑똑합니다. 문법이 틀린 설정은 reload 하지 않고 돌아가던 옛 설정을 그대로 유지합니다. 즉 사이트는 계속 살아 있어요.

위험한 것은 restart 입니다. 껐다 켜는 도중에 문법 오류를 만나면 다시 안 켜집니다. 그래서 운영 중 restart 는 최후의 수단이에요.

오류 메시지에 파일명과 줄 번호가 나옵니다.
🖥️ 내 가상 서버 브라우저 안에서 실행 (계산용)

로그 — 운영자의 눈

nginx는 두 종류의 로그를 남깁니다. 이 둘의 역할이 완전히 다릅니다.

  • access.log — 누가 무엇을 요청했나. 정상 요청도 전부 기록됩니다.
  • error.log — 왜 실패했나. 502가 나면 여기부터 봅니다.
로그 한 줄의 형식을 익혀 두세요. 17·19강에서 계속 씁니다.
🖥️ 내 가상 서버 브라우저 안에서 실행 (계산용)
🤔 확인 문제
운영 중인 서버에서 nginx 설정을 바꿨습니다. 올바른 절차는?
🤔 확인 문제
특정 사이트를 잠시 내리고 싶습니다. 가장 안전한 방법은?