1. 개요 및 역할 (Concept & Role)
Nginx(엔진엑스)는 경량화된 고성능 Web Server이다. Java 기반의 WAS(Jeus, Tomcat) 앞단에 배치하여 Reverse Proxy 역할을 수행하는 것이 표준 아키텍처이다.
- 리버스 프록시 (Reverse Proxy): 외부 클라이언트의 요청을 받아 내부의 WAS로 전달한다. 보안상의 이유로 내부 WAS(8080 포트 등)를 직접 노출하지 않기 위해 사용한다.
- 로드 밸런싱 (Load Balancing): 트래픽이 많을 경우 여러 대의 WAS로 부하를 분산한다. (L7 스위치 역할 수행)
- 정적 파일 처리 (Static Content): HTML, CSS, Image 등 단순 파일 요청은 WAS를 거치지 않고 Nginx가 직접 처리하여 성능을 최적화한다.
2. 아키텍처 흐름 (Architecture Flow)
일반적인 웹 서비스의 요청 처리 순서는 다음과 같다.
- Client (User): 브라우저에서 도메인(
80또는443포트)으로 접속. - Nginx (Web Server): 요청을 수신하여 설정된 규칙에 따라 내부 네트워크로 전달.
- WAS (Jeus/Tomcat): Nginx로부터 요청을 받아 비즈니스 로직(Java) 실행 및 DB 조회 후 응답.
3. 설정 파일 구성 (nginx.conf)
Nginx의 핵심 설정은 /etc/nginx/nginx.conf 또는 /etc/nginx/conf.d/default.conf에서 관리한다.
- 주요 설정 예시 (Reverse Proxy):
server {
listen 80; # 1. 서비스 포트 (HTTP)
server_name example.com; # 2. 도메인 명
location / {
# 3. WAS 연결 설정 (가장 중요)
proxy_pass http://localhost:8080;
# 4. 헤더 포워딩 (Client IP 보존)
# Nginx를 거치면 Client IP가 Nginx IP로 바뀌므로, 원본 IP를 헤더에 담아 보내야 함.
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
}
4. 운영 및 관리 명령어
설정 변경 후 적용하거나 상태를 확인할 때 사용하는 명령어이다.
- 상태 확인:
systemctl status nginx - 재시작 (설정 적용):
systemctl restart nginx - 설정 문법 검사:
nginx -t- Tip:
restart전에 반드시nginx -t를 수행하여 설정 파일(conf)에 오타가 없는지 확인해야 서버 다운을 방지할 수 있다.
- Tip:
5. 로그 관리 (Log Management)
문제 발생 시 WAS 로그(catalina.out)를 보기 전에 Nginx 로그를 먼저 확인하여 요청이 서버까지 도달했는지 판단한다.
- 접속 로그 (Access Log):
/var/log/nginx/access.log(누가 언제 접속했는지 기록) - 에러 로그 (Error Log):
/var/log/nginx/error.log(Nginx 자체 오류 또는 WAS 연결 실패 기록)- Case:
502 Bad Gateway에러가 뜬다면 Nginx는 살아있으나 뒷단의 WAS(Jeus/Tomcat)가 죽어있는 상태이다.
- Case:
'공부일기.. > Infra' 카테고리의 다른 글
| [인터넷 통신] http 기본개념 전반적인 내용 찍먹 (0) | 2025.12.21 |
|---|---|
| [Infra] 서버/인프라 배포 기초개념 (1) | 2025.11.29 |