데브허브 | DEVHUB | Nginx (Engine-X) Crash Course 0 to ProductionNginx (Engine-X) Crash Course 0 to Production
- Nginx의 핵심 기능: Nginx는 고성능 웹 서버이자 리버스 프록시로, 사용자 요청을 백엔드 서버로 효율적으로 라우팅합니다. 🚀
- 10k 문제 해결: Apache 서버가 동시 1만 개 요청 처리 시 겪던 문제를 Nginx의 이벤트 기반, 비블로킹 아키텍처로 해결하여 대규모 트래픽에 강합니다. 💡
- EC2 인스턴스 설정: Ubuntu OS와 2 CPU, 2GB RAM을 갖춘 t3.medium 인스턴스를 사용하여 Nginx 배포 환경을 구축합니다. ☁️
- Nginx 설치 및 기본 동작:
apt를 통해 Nginx를 설치하고, 서비스 시작 및 부팅 시 자동 실행 설정을 하며, 기본 Welcome to Nginx 페이지를 확인합니다. 🛠️
- Nginx 설정 파일 구조:
/etc/nginx/sites-available에 사이트별 설정을 생성하고, /etc/nginx/sites-enabled에 심볼릭 링크를 연결하여 활성화하는 방식을 사용합니다. 📂
- Node.js 환경 구축:
n 모듈을 사용하여 Node.js 및 npm을 설치하고, Next.js 애플리케이션을 빌드할 준비를 합니다. 💻
- Next.js 앱 배포 준비: Next.js 애플리케이션 코드를 클론하고, 의존성을 설치한 후
npm run build 명령어로 프로덕션 빌드를 생성합니다. 📦
- 리버스 프록시 설정: Nginx 서버 블록에서
listen 80;으로 HTTP 요청을 수신하고, proxy_pass http://localhost:3000;를 통해 Next.js 앱(3000번 포트)으로 요청을 전달하는 리버스 프록시를 구성합니다. 🔄
- 필수 프록시 헤더:
Host, X-Real-IP, X-Forwarded-For, X-Forwarded-Proto와 같은 중요한 HTTP 헤더를 설정하여 백엔드 서버가 클라이언트 정보를 정확히 받도록 합니다. 📡