Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- Java
- Pinpoint
- CloudWatch
- docker
- 오블완
- mysql 튜닝
- 정보처리기사 실기 기출문제
- CKA 기출문제
- APM
- 정보처리기사실기 기출문제
- kotlin
- 공부
- Kubernetes
- 기록으로 실력을 쌓자
- Linux
- 코틀린 코루틴의 정석
- minikube
- 티스토리챌린지
- golang
- kotlin querydsl
- Elasticsearch
- CKA
- AI
- aws
- tucker의 go 언어 프로그래밍
- go
- kotlin coroutine
- PETERICA
- Spring
- AWS EKS
Archives
- Today
- Total
피터의 개발이야기
[Nginx] Nginx 설정을 외부 파일로 관리하는 효율적인 방법 본문
반응형
ㅁ 들어가며
PR을 진행하는 과정 중 의견으로 Nginx 설정의 모듈화에 대해서 의견이 있었다. 이를 해결하는 과정에서 Nginx 서버 설정을 체계적으로 관리하고 유지보수성을 높이기 위해 외부 설정 파일을 분리 방법을 알게 되었다. 복잡한 설정을 모듈화하여 가독성과 재사용성을 향상 시킨다.
ㅁ 왜 외부 파일로 분리해야 할까?
- 유지보수 편의성: 특정 설정만 별도로 수정 가능
- 재사용성: 여러 서버 블록에서 동일한 설정 재활용
- 가독성: 메인 설정 파일(
nginx.conf
)이 간결해짐 - 협업 효율성: 팀원들이 설정 내용을 쉽게 파악 가능
실전 적용 방법
ㅁ 기본 구조 이해
http {
include /etc/nginx/conf.d/*.conf; # 외부 설정 파일 포함
include /etc/nginx/snippets/*.conf; # 스니펫 파일 포함
}
ㅁ 외부 설정 파일 생성 예시
User-Agent 차단 설정
# 차단 대상 User-Agent 목록
map $http_user_agent $blocked_ua {
default 0;
~*(Paros|ZmEu|nikto|sqlmap|w3af) 1;
}
ㅇ /etc/nginx/snippets/block_user_agents.conf 생성
SSL 공통 설정
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+CHACHA20:EECDH+AESGCM;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ㅇ /etc/nginx/snippets/ssl_settings.conf 생성
ㅁ 메인 설정 파일 적용
http {
include /etc/nginx/snippets/block_user_agents.conf;
server {
listen 443 ssl;
include /etc/nginx/snippets/ssl_settings.conf;
if ($blocked_ua) {
return 403;
}
}
}
ㅁ 주요 사용 사례
구분 | 설명 | 파일 예시 |
보안 설정 | IP/User-Agent 차단 규칙 | security.conf |
SSL 설정 | 인증서 경로/암호화 방식 | ssl.conf |
로그 형식 | 액세스/에러 로그 포맷 | log_format.conf |
Gzip 압축 | 압축 관련 공통 설정 | gzip.conf |
프록시 설정 | 업스트림 서버 정보 | upstream.conf |
ㅁ 관리 팁
ㅇ 디렉토리 구조 표준화
/etc/nginx/
├── conf.d/ # 서버 블록 설정
├── snippets/ # 재사용 설정 조각
├── sites-available/ # 사용 가능한 사이트 설정
└── sites-enabled/ # 활성화된 사이트 설정
ㅇ 설정 검증 명령어
sudo nginx -t # 구문 검사
sudo nginx -T # 전체 설정 확인
ㅇ 동적 리로드
sudo nginx -s reload # 재시작 없이 설정 적용
ㅇ 모니터링
tail -f /var/log/nginx/error.log
ㅁ 마무리
외부 설정 파일 관리는 Nginx 서버 운영에 필수적인 방법이다. 다소 복잡해 질 수 있는 설정을 체계화하고 모듈화해서 코드를 간결하게 한다.
ㅁ 함께 보면 좋은 사이트
ㅇ nginx 공식문서 번역 (feat. cnf 파일 변경하는 법 for docker)
ㅇ Nginx 설치 및 nginx.conf, default.conf 이해하기
ㅇ [Nginx] Nginx.conf 이해하기: Http 블록과 Server 블록의 차이
반응형
'DevOps > nginx' 카테고리의 다른 글
[Nginx] NGINX 보안 강화를 위한 기본 설정 (0) | 2025.03.22 |
---|---|
[Nginx] Nginx 가상 호스팅 설정 (0) | 2025.03.20 |
[Nginx] Nginx의 기본 이해와 주요 기능 (0) | 2025.03.18 |
[Nginx] NGINX으로 HLS(HTTP Live Streaming) 스트리밍 캐싱설정 (0) | 2025.03.14 |
[Nginx] NGINX에서 정적 파일 캐시 설정하는 방법 (0) | 2025.03.11 |
Comments