diff --git a/public/images/academy/nginx-encyclopedia/5.svg b/public/images/academy/nginx-encyclopedia/5.svg new file mode 100644 index 00000000..03ef93de --- /dev/null +++ b/public/images/academy/nginx-encyclopedia/5.svg @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Forward Proxy vs Reverse Proxy + + + + + VS + + + Forward Proxy + + + + + + + + 사용자A + + + + + + + 사용자B + + + + + + + 사용자C + + + + + + + + + + + + + + + + + + + Forward + Proxy + + + + + + + + + + 인터넷 + + + + 서버1 + + + + 서버2 + + + + 서버3 + + + + + "나 대신 밖에 나가서 + 가져와줘" + + + • 사용자 IP 숨기기 + • 접근 제한 우회 + • 콘텐츠 캐싱 + + + Reverse Proxy + + + + + 인터넷 + + + + 사용자들 + + + + 클라이언트 + + + + + + + + Reverse + Proxy + + + + + + + + + + + + + + + + 웹서버1 + + + + + + + + 웹서버2 + + + + + + + + 웹서버3 + + + + + "손님을 적절한 + 담당자에게 안내" + + + • 서버 IP 숨기기 + • 로드밸런싱 + • SSL 종료 / 캐싱 + + + + Nginx = 이것! + \ No newline at end of file diff --git a/public/images/academy/nginx-encyclopedia/6.svg b/public/images/academy/nginx-encyclopedia/6.svg new file mode 100644 index 00000000..0e479b03 --- /dev/null +++ b/public/images/academy/nginx-encyclopedia/6.svg @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SAM 5개 도메인 라우팅 맵 + + + + + + + + + + 인터넷 + + + + + HTTPS :443 + + + + + + + + + 외부 Nginx (Reverse Proxy) + SSL 종료 + 도메인 기반 라우팅 + *.sam.kr 와일드카드 인증서 + + + + + :3000 + + + :8001 + + + :8002 + + + :8003 + + + :8080 + + + + + + dev.sam.kr + React + (Next.js 15) + + + + + + + + + + api.sam.kr + API + (Laravel 11) + + { } + + + + + + mng.sam.kr + MNG + (Laravel 11) + + + + + + + + + sales.sam.kr + Sales + (PHP) + + + + + + + + + + 5130.sam.kr + 레거시 + (PHP 7.3) + + + ! + + + + 라우팅 규칙: server_name 기반 분기 + 클라이언트 요청의 Host 헤더를 읽어 → 해당 도메인의 upstream 컨테이너로 proxy_pass + \ No newline at end of file diff --git a/public/images/academy/nginx-encyclopedia/7.svg b/public/images/academy/nginx-encyclopedia/7.svg new file mode 100644 index 00000000..e4788311 --- /dev/null +++ b/public/images/academy/nginx-encyclopedia/7.svg @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2계층 Nginx 아키텍처 (건물 단면도) + "경비실(정문) + 각 층 접수 창구" 구조 + + + + + + SAM 서버 건물 + + + + + + 1층 + + + + + + 정문 + + + 요청 도착 + + + + 외부 Nginx + (경비실 / 안내 데스크) + + ✔ SSL/TLS 종료 + ✔ 도메인별 라우팅 (server_name) + + + + + + + 경비원 + + + + + "신분증 확인 (SSL)" + "어디 가시나요?" (도메인) + "2층 해당 창구로 가세요" + (proxy_pass → 내부 Nginx) + + + + + + 2층 + 각 서비스별 접수 창구 (내부 Nginx + PHP-FPM) + + + + + + API 내부 Nginx + api.sam.kr 전담 창구 + + + + PHP-FPM + fastcgi_pass 127.0.0.1:9000 + + + + + Laravel 11 (API 서버) + + + :8001 + + + + + + MNG 내부 Nginx + mng.sam.kr 전담 창구 + + + + PHP-FPM + fastcgi_pass + tenant-storage + + + + + Laravel 11 (관리자 패널) + + :8002 + + + + + + Sales 내부 Nginx + sales.sam.kr 전담 창구 + + + + PHP-FPM + fastcgi_pass 127.0.0.1:9000 + + + + + PHP (영업관리) + + :8003 + + + + + + + + + 층간 경계 + \ No newline at end of file diff --git a/public/images/academy/nginx-encyclopedia/8.svg b/public/images/academy/nginx-encyclopedia/8.svg new file mode 100644 index 00000000..13da27ba --- /dev/null +++ b/public/images/academy/nginx-encyclopedia/8.svg @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SSL/TLS - 봉투와 자물쇠 비유 + HTTP는 열린 편지, HTTPS는 자물쇠 달린 봉투 + + + + HTTP (평문) + + + + + + + + + + + + ID: admin + PW: 1234 + 카드: 1234-5678-... + --- 내용이 보임! --- + + + + + + + + 도청 가능! + + + + + 누구나 내용을 엿볼 수 있음 + + + + + + SSL/TLS + 암호화 + + + + + + + + + S + + + + + S + + + + + + + + + + 키 교환 + + + + + HTTPS (암호화) + + + + + + + + + + + a7f2$k!9@xP& + Qm#8nL^vR2wZ + *&jK3$pN!fYt + --- 해독 불가 --- + + + + + + + + + + + + + + + 도청 불가 + 위변조 방지 + + + + + 암호화로 안전하게 보호 + + + + + + TLS 버전 + + + + TLS 1.0 + 폐기 + + + + TLS 1.1 + 폐기 + + + + TLS 1.2 + 현재 사용 + + + + TLS 1.3 + 최신/권장 + + + + + + + + + + + + + 와일드카드 인증서 + *.sam.kr + 하나의 인증서로 모든 서브도메인 보호 + dev / api / mng / sales / 5130 + + \ No newline at end of file