api.sofly.co.kr 서버 설정 기록 | 작성일: 2026년 3월 27일
api.sofly.co.kr 서버에서 Nginx를 이용한 Blue/Green 무중단 배포 구성 과정을 기록합니다. core-service와 supply-service 두 개의 Spring Boot 애플리케이션을 대상으로 합니다.
/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
| 디렉토리 | 역할 | 자동 로드 |
|---|---|---|
conf.d/ |
전역 설정 파일 보관 | ✅ *.conf 자동 로드 |
sites-available/ |
가상호스트 보관소 | ❌ 직접 include 필요 |
sites-enabled/ |
활성화된 사이트 (심볼릭 링크) | ✅ nginx.conf에서 include |
conf.d에sofly.conf를 두는 방식이 더 직관적입니다.
conf.d/에 .conf 확장자로 두면 → nginx가 자동 로드 시 server{} 블록 밖에서 set 지시어 오류 발생snippets/에 두면 → 동일한 오류 발생bluegreen/는 자동 로드되지 않아 안전sofly.conf 내부 server{} 블록 안에서만 include하기 때문에 set 지시어가 정상 동작# ❌ 잘못된 위치 (http 블록 최상위)
include /etc/nginx/bluegreen/service-url-core.inc;
server { ... }
# ✅ 올바른 위치 (server 블록 안)
server {
include /etc/nginx/bluegreen/service-url-core.inc;
...
}
# ❌ 쌍따옴표 → 쉐이 $core_url을 빈 값으로 치환
echo "set $core_url http://127.0.0.1:8080;"
# ✅ 홀따옴표 → $가 그대로 파일에 저장
echo 'set $core_url http://127.0.0.1:8080;'