NGINX 10 — Secure Link(만료 링크) + envsubst로 배포 자동화까지
구성도
핵심 정리
1) Secure URL / Secure Link의 목적
- 다운로드 URL이 외부에 공유되더라도, 토큰이 없으면 접근할 수 없게 만드는 방식입니다.
- 여기에 만료 시간(expiry)을 붙이면 “일정 시간만 유효한 링크”를 만들 수 있습니다.
2) envsubst로 환경변수 주입(컨테이너 배포에서 자주 쓰는 패턴)
- 운영/개발/스테이징마다 upstream 주소나 포트를 바꿔야 할 때, 템플릿을 만들어 두면 관리가 쉬워집니다.
- 컨테이너 시작 전에
envsubst로 치환해nginx.conf를 생성하는 형태를 많이 사용합니다.
# (개념 예시) secure_link / secure_link_md5는 모듈/구성에 따라 값이 달라질 수 있습니다.
# 핵심은 "요청 값 + 비밀키"로 토큰을 만들고, NGINX가 같은 규칙으로 검증한다는 점입니다.
location /download/ {
# secure_link ...;
# secure_link_md5 ...;
if ($secure_link = "") { return 403; } # 토큰 없음/위변조
if ($secure_link = "0") { return 410; } # 만료
}
# nginx.conf.template (예시)
upstream app {
server ${UPSTREAM_HOST}:${UPSTREAM_PORT};
}
server {
location / {
proxy_pass http://app;
}
}
# entrypoint에서 envsubst로 실제 conf 생성(예시)
envsubst '${UPSTREAM_HOST} ${UPSTREAM_PORT}' < /etc/nginx/templates/nginx.conf.template > /etc/nginx/conf.d/default.conf
운영 팁
- secure link는 ‘링크 공유’를 전제로 하므로, 토큰 생성/검증 규칙을 코드/운영팀 모두가 이해할 수 있게 문서화해 두시면 좋습니다.
- envsubst 템플릿은 ‘치환 변수 이름’을 일관되게 관리하면, 배포 자동화에서 실수가 크게 줄어듭니다.
참고 링크
'Tech Note > 서버-Nginx' 카테고리의 다른 글
| [실습] 08. Basic Auth로 빠른 접근 제어 적용 (0) | 2026.01.04 |
|---|---|
| [실습] 07. Rate Limiting 실전 (0) | 2026.01.04 |
| [실습] 06. 설정 컨텍스트를 통한 http 블록 설정 (0) | 2026.01.04 |
| [실습] 05. split clients로 트래픽 분배 구성 (0) | 2026.01.04 |
| [실습] 04. NGINX 캐시 입문 (0) | 2026.01.04 |