[{"data":1,"prerenderedAt":213},["ShallowReactive",2],{"post-document:\u002Fdevops\u002Fnginx\u002F2026\u002F08\u002F24\u002Fnginx-reverse-proxy\u002F":3},{"id":4,"title":5,"body":6,"categories":195,"date":197,"description":198,"extension":199,"image":200,"key_concepts":200,"last_modified_at":200,"legacyPath":201,"meta":202,"navigation":112,"part":204,"path":205,"published":112,"robots":200,"seo":206,"series":207,"stem":208,"strengths":200,"summary":200,"tags":209,"tradeoffs":200,"__hash__":212},"posts\u002Fposts\u002FDevOps\u002FNginx\u002F2026-08-24-nginx-reverse-proxy.md","Nginx 리버스 프록시와 Spring Boot 연결",{"type":7,"value":8,"toc":187},"minimark",[9,14,18,29,32,36,72,80,162,166,170,183],[10,11,13],"h2",{"id":12},"_1-리버스-프록시란","1. 리버스 프록시란?",[15,16,17],"p",{},"리버스 프록시는 클라이언트의 요청을 대신 받은 뒤 내부 Backend Server로 전달하는 서버입니다.",[19,20,26],"pre",{"className":21,"code":23,"language":24,"meta":25},[22],"language-text","Client\n  ↓ example.com\nNginx :80\n  ↓ proxy_pass\nSpring Boot :8080\n","text","",[27,28,23],"code",{"__ignoreMap":25},[15,30,31],{},"클라이언트는 Spring Boot의 주소와 포트를 직접 알지 않아도 Nginx를 통해 API를 호출할 수 있습니다.",[10,33,35],{"id":34},"_2-nginx와-spring-boot의-역할","2. Nginx와 Spring Boot의 역할",[37,38,39,52],"table",{},[40,41,42],"thead",{},[43,44,45,49],"tr",{},[46,47,48],"th",{},"구성 요소",[46,50,51],{},"역할",[53,54,55,64],"tbody",{},[43,56,57,61],{},[58,59,60],"td",{},"Nginx",[58,62,63],{},"외부 요청 수신, 정적 파일 제공, 요청 전달",[43,65,66,69],{},[58,67,68],{},"Spring Boot",[58,70,71],{},"비즈니스 로직 실행, API 응답 생성",[10,73,75,76,79],{"id":74},"_3-proxy_pass-설정","3. ",[27,77,78],{},"proxy_pass"," 설정",[19,81,85],{"className":82,"code":83,"language":84,"meta":25,"style":25},"language-nginx shiki shiki-themes github-light github-dark","server {\n    listen 80;\n    server_name example.com;\n\n    location \u002Fapi\u002F {\n        proxy_pass http:\u002F\u002F127.0.0.1:8080;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n    }\n}\n","nginx",[27,86,87,95,101,107,114,120,126,132,138,144,150,156],{"__ignoreMap":25},[88,89,92],"span",{"class":90,"line":91},"line",1,[88,93,94],{},"server {\n",[88,96,98],{"class":90,"line":97},2,[88,99,100],{},"    listen 80;\n",[88,102,104],{"class":90,"line":103},3,[88,105,106],{},"    server_name example.com;\n",[88,108,110],{"class":90,"line":109},4,[88,111,113],{"emptyLinePlaceholder":112},true,"\n",[88,115,117],{"class":90,"line":116},5,[88,118,119],{},"    location \u002Fapi\u002F {\n",[88,121,123],{"class":90,"line":122},6,[88,124,125],{},"        proxy_pass http:\u002F\u002F127.0.0.1:8080;\n",[88,127,129],{"class":90,"line":128},7,[88,130,131],{},"        proxy_set_header Host $host;\n",[88,133,135],{"class":90,"line":134},8,[88,136,137],{},"        proxy_set_header X-Real-IP $remote_addr;\n",[88,139,141],{"class":90,"line":140},9,[88,142,143],{},"        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n",[88,145,147],{"class":90,"line":146},10,[88,148,149],{},"        proxy_set_header X-Forwarded-Proto $scheme;\n",[88,151,153],{"class":90,"line":152},11,[88,154,155],{},"    }\n",[88,157,159],{"class":90,"line":158},12,[88,160,161],{},"}\n",[10,163,165],{"id":164},"_4-요청-전달-흐름","4. 요청 전달 흐름",[10,167,169],{"id":168},"_5-핵심-정리","5. 핵심 정리",[171,172,173,177,180],"ul",{},[174,175,176],"li",{},"사용자는 Nginx의 주소로 요청합니다.",[174,178,179],{},"Nginx는 설정된 Backend Server로 요청을 전달합니다.",[174,181,182],{},"Spring Boot가 생성한 응답은 Nginx를 거쳐 사용자에게 돌아갑니다.",[184,185,186],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":25,"searchDepth":97,"depth":97,"links":188},[189,190,191,193,194],{"id":12,"depth":97,"text":13},{"id":34,"depth":97,"text":35},{"id":74,"depth":97,"text":192},"3. proxy_pass 설정",{"id":164,"depth":97,"text":165},{"id":168,"depth":97,"text":169},[196,60],"DevOps","2026-08-24 00:30:00 +0900","리버스 프록시의 의미와 Nginx가 클라이언트 요청을 Spring Boot 서버로 전달하는 과정을 정리한다.","md",null,"\u002Fdevops\u002Fnginx\u002F2026\u002F08\u002F24\u002Fnginx-reverse-proxy\u002F",{"layout":203},"post","2","\u002Fposts\u002Fdevops\u002Fnginx\u002F2026-08-24-nginx-reverse-proxy",{"title":5,"description":198},"Nginx 기초","posts\u002FDevOps\u002FNginx\u002F2026-08-24-nginx-reverse-proxy",[60,210,211,196],"ReverseProxy","SpringBoot","I9FfkExyzldi0lraPjdo38N9XBa-_8n0q4nidiNovig",1788744789593]