관리 메뉴

피터의 개발이야기

[Nginx] Nginx 설정을 외부 파일로 관리하는 효율적인 방법 본문

DevOps/nginx

[Nginx] Nginx 설정을 외부 파일로 관리하는 효율적인 방법

기록하는 백앤드개발자 2025. 3. 19. 06:20
반응형

ㅁ 들어가며

PR을 진행하는 과정 중 의견으로 Nginx 설정의 모듈화에 대해서 의견이 있었다. 이를 해결하는 과정에서 Nginx 서버 설정을 체계적으로 관리하고 유지보수성을 높이기 위해 외부 설정 파일을 분리 방법을 알게 되었다. 복잡한 설정을 모듈화하여 가독성과 재사용성을 향상 시킨다.

 

왜 외부 파일로 분리해야 할까?

  1. 유지보수 편의성: 특정 설정만 별도로 수정 가능
  2. 재사용성: 여러 서버 블록에서 동일한 설정 재활용
  3. 가독성: 메인 설정 파일(nginx.conf)이 간결해짐
  4. 협업 효율성: 팀원들이 설정 내용을 쉽게 파악 가능

실전 적용 방법

 

 

ㅁ 기본 구조 이해

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 블록의 차이

 

반응형
Comments