Spaces:
Build error
Build error
# nginx.conf | |
worker_processes auto; | |
events { | |
worker_connections 1024; | |
} | |
http { | |
include mime.types; | |
default_type application/octet-stream; | |
sendfile on; | |
keepalive_timeout 65; | |
server { | |
listen 8000; # 컨테이너 내부에서 8000번 포트로 수신 | |
# Vue.js 정적 파일 서빙 | |
location / { | |
root /usr/share/nginx/html; # Vue.js 빌드 결과물이 복사될 경로 | |
index index.html index.htm; | |
try_files $uri $uri/ /index.html; # Vue Router history mode 지원 | |
} | |
# FastAPI 백엔드 API로 프록시 (FastAPI는 컨테이너 내부에서 8000번 포트로 실행됩니다) | |
# Nginx가 FastAPI 뒤에 있으므로, FastAPI가 8000번 포트로 들어오는 요청을 받습니다. | |
# Vue.js에서 /api/v1/process_youtube_video 로 요청하면, 백엔드로 전달됩니다. | |
# 주의: 여기서는 간단하게 /api 경로로 들어오는 모든 요청을 백엔드로 프록시합니다. | |
# 실제 앱에서는 FastAPI가 동일한 8000번 포트에서 Nginx 없이 직접 실행되거나, | |
# Nginx가 다른 포트로 들어오는 요청을 백엔드 포트(예: 8001)로 프록시하는 형태가 될 수 있습니다. | |
# 여기서는 Nginx가 Vue 정적 파일을 서빙하고, 백엔드는 Nginx를 통하지 않고 | |
# 직접 8000번 포트에서 실행될 것이므로, 이 proxy_pass 부분은 현재 필요 없습니다. | |
# (Uvicorn이 직접 8000번 포트를 사용하고 Nginx는 다른 포트를 사용하는 경우의 예시) | |
# location /api/ { | |
# proxy_pass http://localhost:8000; # FastAPI가 8000번 포트에서 실행 중이라고 가정 | |
# proxy_set_header Host $host; | |
# proxy_set_header X-Real-IP $remote_addr; | |
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
# proxy_set_header X-Forwarded-Proto $scheme; | |
# } | |
# 하지만, 허깅페이스 스페이스 Dockerfile 구성은 보통 Uvicorn이 직접 8000번 포트를 리슨합니다. | |
# Vue 앱은 빌드되어 /usr/share/nginx/html 에 있고, Nginx는 그 정적 파일만 서빙합니다. | |
# API 호출은 Vue 앱에서 직접 Uvicorn으로 이루어집니다 (동일 포트). | |
# 따라서 위 proxy_pass 설정은 이 경우 필요 없습니다. | |
# Dockerfile에서 Nginx를 사용하지 않고 Uvicorn이 Vue 앱의 정적 파일까지 서빙하는 경우가 더 흔합니다. | |
# --- 수정: 허깅페이스 스페이스 Docker 환경에 맞게 Nginx 역할 최소화 --- | |
# 허깅페이스 스페이스는 Docker 컨테이너의 8000번 포트를 외부로 노출합니다. | |
# 일반적으로 Uvicorn(FastAPI)이 이 8000번 포트를 직접 리슨하고, | |
# Vue.js 빌드 결과물은 Uvicorn의 Starlette StaticFiles 기능을 통해 서빙하거나, | |
# Nginx를 별도로 띄워 정적 파일만 서빙하고 API는 직접 Uvicorn으로 보내는 방식입니다. | |
# 여기서는 Uvicorn이 8000번 포트를 리슨하고, Nginx는 별도의 포트에서 정적 파일만 서빙하는 | |
# 복잡한 구성을 피하고, Uvicorn이 모든 것을 처리하도록 구성하는 것이 더 간단합니다. | |
# 잠시 보류하고, 다음 start.sh 스크립트와 함께 설명하겠습니다. | |
# Nginx를 사용하지 않는 것이 더 일반적입니다. | |
# 임시로 이 부분은 주석 처리합니다. | |
# location /api/ { | |
# proxy_pass http://127.0.0.1:8000; | |
# proxy_set_header Host $host; | |
# proxy_set_header X-Real-IP $remote_addr; | |
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
# } | |
} | |
} |