This commit is contained in:
dabeeo
2026-04-20 15:29:44 +09:00
parent 4fbfb31e97
commit 9fa549285f
4 changed files with 224 additions and 188 deletions

View File

@@ -18,10 +18,7 @@ services:
- SPRING_PROFILES_ACTIVE=dev
- TZ=Asia/Seoul
volumes:
- /mnt/nfs_share/images:/app/original-images
- /mnt/nfs_share/model_output:/app/model-outputs
- /mnt/nfs_share/train_dataset:/app/train-dataset
- /home/kcomu/data:/home/kcomu/data
- /data/training:/data/training
- /var/run/docker.sock:/var/run/docker.sock
networks:
- kamco-cds

View File

@@ -18,8 +18,6 @@ services:
- SPRING_PROFILES_ACTIVE=prod
- TZ=Asia/Seoul
volumes:
- ./app/model_output:/app/model-outputs
- ./app/train_dataset:/app/train-dataset
- /var/run/docker.sock:/var/run/docker.sock
networks:
- kamco-cds

View File

@@ -15,10 +15,11 @@ http {
error_log /var/log/nginx/error.log warn;
sendfile on;
keepalive_timeout 65;
keepalive_timeout 65;
# 업로드 파일 크기 제한 (10GB)
client_max_body_size 10G;
# 업로드 파일 크기 / 타임아웃 (10GB, 10분)
client_max_body_size 10G;
client_body_timeout 600s;
# Upstream 설정
upstream api_backend {
@@ -35,12 +36,13 @@ http {
server_name api.train-kamco.com train-kamco.com;
# 모든 HTTP 요청을 HTTPS로 리다이렉트
return 301 https://$server_name$request_uri;
return 301 https://$host$request_uri;
}
# HTTPS 서버 설정
server {
listen 443 ssl http2;
listen 443 ssl;
http2 on;
server_name api.train-kamco.com;
# SSL 인증서 설정 (사설 인증서 - 멀티 도메인)
@@ -64,8 +66,19 @@ http {
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
# CORS 헤더
add_header Access-Control-Allow-Origin "https://train-kamco.com" always;
add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, PATCH, OPTIONS" always;
add_header Access-Control-Allow-Headers "Authorization, Content-Type, Cookie, X-Requested-With" always;
add_header Access-Control-Allow-Credentials "true" always;
# 프록시 설정
location / {
# OPTIONS preflight 처리
if ($request_method = OPTIONS) {
return 204;
}
proxy_pass http://api_backend;
proxy_http_version 1.1;
@@ -81,16 +94,14 @@ http {
proxy_set_header Cookie $http_cookie;
proxy_set_header Authorization $http_authorization;
# 타임아웃 설정 (대용량 파일 업로드 지원)
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
# 타임아웃 설정 (10분)
proxy_connect_timeout 600s;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
# 버퍼 설정
proxy_buffering on;
proxy_buffer_size 4k;
proxy_buffers 8 4k;
proxy_busy_buffers_size 8k;
# 대용량 업로드: 버퍼링 없이 백엔드로 스트리밍
proxy_request_buffering off;
proxy_buffering off;
}
# 헬스체크 엔드포인트
@@ -102,7 +113,8 @@ http {
# HTTPS 서버 설정 - Next.js Web Application
server {
listen 443 ssl http2;
listen 443 ssl;
http2 on;
server_name train-kamco.com;
# SSL 인증서 설정 (사설 인증서 - 멀티 도메인)
@@ -142,10 +154,14 @@ http {
proxy_pass_request_headers on;
proxy_set_header Cookie $http_cookie;
# 타임아웃 설정
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
# 타임아웃 설정 (10분)
proxy_connect_timeout 600s;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
# 대용량 업로드: 버퍼링 없이 백엔드로 스트리밍
proxy_request_buffering off;
proxy_buffering off;
}
# 프록시 설정
@@ -164,10 +180,10 @@ http {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 타임아웃 설정
# 타임아웃 설정 (10분)
proxy_connect_timeout 600s;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
# 버퍼 설정
proxy_buffering on;

View File

@@ -30,20 +30,45 @@ token:
swagger:
local-port: 8080
# file:
# dataset-dir: /home/kcomu/data/request/
# dataset-tmp-dir: ${file.dataset-dir}tmp/
# pt-path: /home/kcomu/data/response/v6-cls-checkpoints/
# pt-FileName: yolov8_6th-6m.pt
# train:
# docker:
# image: kamco-cd-train:latest
# base_path: /home/kcomu/data
# request_dir: ${train.docker.base_path}/request
# response_dir: ${train.docker.base_path}/response
# symbolic_link_dir: ${train.docker.base_path}/tmp
# container_prefix: kamco-cd-train
# shm_size: 16g
# ipc_host: true
file:
dataset-dir: /home/kcomu/data/request/
dataset-dir: /data/training/request/
dataset-tmp-dir: ${file.dataset-dir}tmp/
pt-path: /home/kcomu/data/response/v6-cls-checkpoints/
pt-path: /data/training/response/v6-cls-checkpoints/
pt-FileName: yolov8_6th-6m.pt
train:
docker:
image: kamco-cd-train:latest
base_path: /home/kcomu/data
base_path: /data/training
request_dir: ${train.docker.base_path}/request
response_dir: ${train.docker.base_path}/response
symbolic_link_dir: ${train.docker.base_path}/tmp
container_prefix: kamco-cd-train
shm_size: 16g
ipc_host: true
hyper:
parameter:
gpus: 1
gpu-ids: 0
batch-size: 10