From 950cb6da5dd65f57f53bfb3e6a05c1a597a8d434 Mon Sep 17 00:00:00 2001 From: happybell80 Date: Fri, 14 Nov 2025 23:08:59 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20nginx=20SPA=20=EB=9D=BC=EC=9A=B0?= =?UTF-8?q?=ED=8C=85=20403=20=EC=97=90=EB=9F=AC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 문제: - /goosefarm/assets/ 접근 시 403 Forbidden 발생 - try_files의 /가 디렉토리 인덱싱 시도 해결: - try_files에서 / 제거 - 파일 없으면 바로 index.html로 fallback하여 React Router가 라우팅 처리 변경: try_files $uri $uri/ /goosefarm/index.html; → try_files $uri /goosefarm/index.html; --- server-nginx-default | 42 ++++++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/server-nginx-default b/server-nginx-default index 91c2971..4ad2be0 100644 --- a/server-nginx-default +++ b/server-nginx-default @@ -51,17 +51,24 @@ server { try_files $uri $uri/ /index.html; } - # GooseFarm Frontend - location /goosefarm { - proxy_pass http://localhost:3001; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; + # GooseFarm API - must come before /goosefarm for priority + location /goosefarm/api/ { + proxy_buffering on; + proxy_buffer_size 128k; + proxy_buffers 8 256k; + proxy_busy_buffers_size 512k; + proxy_read_timeout 120s; + proxy_pass http://localhost:8200/api/; 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; - proxy_cache_bypass $http_upgrade; + } + + # GooseFarm Frontend + location /goosefarm { + alias /var/www/html/goosefarm/; + try_files $uri /goosefarm/index.html; } # API endpoints -> route to gateway (host 8100 -> container 8000) @@ -173,17 +180,24 @@ server { try_files $uri $uri/ /index.html; } - # GooseFarm Frontend - location /goosefarm { - proxy_pass http://localhost:3001; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; + # GooseFarm API - must come before /goosefarm for priority + location /goosefarm/api/ { + proxy_buffering on; + proxy_buffer_size 128k; + proxy_buffers 8 256k; + proxy_busy_buffers_size 512k; + proxy_read_timeout 120s; + proxy_pass http://localhost:8200/api/; 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; - proxy_cache_bypass $http_upgrade; + } + + # GooseFarm Frontend + location /goosefarm { + alias /var/www/html/goosefarm/; + try_files $uri /goosefarm/index.html; } # API endpoints -> route to gateway (host 8100 -> container 8000)