api.sofly.co.kr 서버 설정 기록 | 작성일: 2026년 3월 27일

1. 개요

api.sofly.co.kr 서버에서 Nginx를 이용한 Blue/Green 무중단 배포 구성 과정을 기록합니다. core-service와 supply-service 두 개의 Spring Boot 애플리케이션을 대상으로 합니다.

2. 최종 디렉토리 구조

/etc/nginx/
├── nginx.conf
├── conf.d/
│   └── sofly.conf               ← 메인 서버 설정 (새로 생성)
├── bluegreen/                   ← 포트 변수 파일 전용 디렉토리 (새로 생성)
│   ├── service-url-core.inc
│   └── service-url-supply.inc
├── snippets/                    ← 기존 유지
│   ├── fastcgi-php.conf
│   └── snakeoil.conf
└── sites-available/
    ├── sofly                    ← 기존 파일 (백업용, 비활성화)
    └── default

3. 핵심 개념

3-1. conf.d vs sites-available 차이

디렉토리 역할 자동 로드
conf.d/ 전역 설정 파일 보관 ✅ *.conf 자동 로드
sites-available/ 가상호스트 보관소 ❌ 직접 include 필요
sites-enabled/ 활성화된 사이트 (심볼릭 링크) ✅ nginx.conf에서 include

conf.d에 sofly.conf를 두는 방식이 더 직관적입니다.

3-2. .inc 파일을 bluegreen/ 디렉토리에 두는 이유

3-3. set 지시어 위치 규칙

# ❌ 잘못된 위치 (http 블록 최상위)
include /etc/nginx/bluegreen/service-url-core.inc;
server { ... }

# ✅ 올바른 위치 (server 블록 안)
server {
    include /etc/nginx/bluegreen/service-url-core.inc;
    ...
}

3-4. 파일 작성 시 홀따옴표 규칙

# ❌ 쌍따옴표 → 쉐이 $core_url을 빈 값으로 치환
echo "set $core_url http://127.0.0.1:8080;"

# ✅ 홀따옴표 → $가 그대로 파일에 저장
echo 'set $core_url http://127.0.0.1:8080;'

4. 설정 파일 내용

/etc/nginx/bluegreen/service-url-core.inc