From 2c84ebe12902903adfdadfe4328e6ff8030b7dc8 Mon Sep 17 00:00:00 2001 From: LeeYuJoon Date: Fri, 22 Nov 2024 16:20:56 +0900 Subject: [PATCH] :rocket: Nginx.conf update Related: --- nginx.conf | 40 ++++++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/nginx.conf b/nginx.conf index 4964014..25805ef 100644 --- a/nginx.conf +++ b/nginx.conf @@ -2,28 +2,40 @@ server { listen 80; server_name the-monitor.o-r.kr; - location / { - if ($request_method = 'OPTIONS') { - add_header 'Access-Control-Allow-Origin' 'http://localhost:5173'; # CORS 허용 출처 - add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; # 허용되는 메서드 - add_header 'Access-Control-Allow-Headers' 'Origin, Content-Type, Accept, Authorization'; # 허용되는 헤더 - add_header 'Access-Control-Max-Age' 3600; # 프리플라이트 요청의 캐시 시간 - return 204; # OPTIONS 요청에 대해 204 No Content 응답 - } + # Swagger URL 예외 처리 + location /swagger-ui/ { + proxy_pass http://app:8080; # HTTP로 요청을 전달 + 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; + } + + # CORS를 위한 OPTIONS 요청 처리 + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' 'http://localhost:5173'; # CORS 허용 출처 + add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; # 허용되는 메서드 + add_header 'Access-Control-Allow-Headers' 'Origin, Content-Type, Accept, Authorization'; # 허용되는 헤더 + add_header 'Access-Control-Max-Age' 3600; # 프리플라이트 요청의 캐시 시간 + return 204; # OPTIONS 요청에 대해 204 No Content 응답 + } - # 나머지 HTTP 요청을 HTTPS로 리디렉션 + # 나머지 HTTP 요청을 HTTPS로 리디렉션 + location / { return 301 https://$host$request_uri; } +} - # HTTPS 서버 설정 +server { listen 443 ssl; server_name the-monitor.o-r.kr; - ssl_certificate /etc/nginx/ssl/certificate.crt; # SSL 인증서 파일 경로 - ssl_certificate_key /etc/nginx/ssl/private.key; # 개인 키 파일 경로 - ssl_trusted_certificate /etc/nginx/ssl/ca_bundle.crt; # 중간 인증서 경로 + ssl_certificate /etc/nginx/ssl/certificate.crt; + ssl_certificate_key /etc/nginx/ssl/private.key; + ssl_trusted_certificate /etc/nginx/ssl/ca_bundle.crt; + # Swagger UI를 포함한 모든 요청을 HTTPS로 처리 location / { - proxy_pass http://app:8080; # app 컨테이너로 요청을 전달 + proxy_pass http://app:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;