🏨 Nginx: Apex-F1의 β€˜μˆ˜μ„ ν˜Έν…” ν”„λ‘ νŠΈ λ°μŠ€ν¬β€™

μ§€κΈˆκΉŒμ§€μ˜ κ΅¬μ‘°λŠ” μ‚¬μš©μžκ°€ ν”„λ‘ νŠΈμ—”λ“œ(λ°©λ¬Έ)λ₯Ό 갈 λ•Œ 80번 포트둜 λ“€μ–΄κ°€κ³ , λ°±μ—”λ“œ(식당)λ₯Ό 갈 λ•Œ 8080번 포트둜 직접 μ°Ύμ•„κ°€λŠ” κ΅¬μ‘°μ˜€μŠ΅λ‹ˆλ‹€. λΈŒλΌμš°μ €κ°€ 식당 λ¬Έ(8080)을 직접 λ‘λ“œλ¦¬λŠ” μ…ˆμ΄μ£ .

**Nginx(μ—”μ§„μ—‘μŠ€)**λŠ” 이 μ‹œμŠ€ν…œμ˜ 맨 μ•žμ— μ„œμ„œ λͺ¨λ“  μ™ΈλΆ€ νŠΈλž˜ν”½μ„ 혼자 λ°›μ•„λ‚΄λŠ” β€˜λ¦¬λ²„μŠ€ ν”„λ‘μ‹œ(Reverse Proxy)’ 역할을 ν•˜λŠ” μ•„μ£Ό λΉ λ₯΄κ³  κ°€λ²Όμš΄ μ›Ή μ„œλ²„μž…λ‹ˆλ‹€.

Nginxλ₯Ό λ„μž…ν•˜λ©΄ μ–΄λ–»κ²Œ λ κΉŒμš”?

  1. 단일 μΆœμž…κ΅¬: μ‚¬μš©μžλŠ” 무쑰건 80(HTTP) λ˜λŠ” 443(HTTPS) 포트둜만 λ“€μ–΄μ˜΅λ‹ˆλ‹€. λ°±μ—”λ“œ(8080)λŠ” μ™ΈλΆ€μ—μ„œ μ•„μ˜ˆ 접속할 수 없도둝 문을 μž κ°€λ²„λ¦½λ‹ˆλ‹€. (λ³΄μ•ˆ λŒ€ν­ μƒμŠΉ!)

  2. μŠ€λ§ˆνŠΈν•œ κΈΈ μ•ˆλ‚΄ (λΌμš°νŒ…): Nginxκ°€ URL을 보고 λ˜‘λ˜‘ν•˜κ²Œ νŠΈλž˜ν”½μ„ λ‚˜λˆ μ€λ‹ˆλ‹€.

    • β€œμ–΄? μ£Όμ†Œ 뒀에 /api/v1/...이 λΆ™μ—ˆλ„€? λ„Œ λ°±μ—”λ“œ μ»¨ν…Œμ΄λ„ˆ(8080)둜 κ°€!”

    • β€œκ·Έ μ™Έμ˜ λ‚˜λ¨Έμ§€ μ£Όμ†Œλ„€? λ„Œ ν”„λ‘ νŠΈμ—”λ“œ μ»¨ν…Œμ΄λ„ˆ(3000)둜 κ°€!”

  3. HTTPS μ•”ν˜Έν™” μ „λ‹΄: 뒀에 μžˆλŠ” ν”„λ‘ νŠΈ/λ°±μ—”λ“œ μ»¨ν…Œμ΄λ„ˆλŠ” μ•”ν˜Έν™” λ³΅ν˜Έν™”λ₯Ό μ‹ κ²½ μ“Έ ν•„μš” 없이 λ³Έμ—…μ—λ§Œ μ§‘μ€‘ν•˜κ³ , Nginxκ°€ λ³΄μ•ˆ 톡신을 혼자 λ‹€ μ²˜λ¦¬ν•΄ μ€λ‹ˆλ‹€.


πŸ”’ HTTPS: μ–΄λ–»κ²Œ μ μš©ν• κΉŒμš”?

HTTPSλŠ” μ‚¬μš©μžμ™€ μ„œλ²„κ°€ μ£Όκ³ λ°›λŠ” λΉ„λ°€λ²ˆν˜Έλ‚˜ 인증 토큰을 해컀가 μ€‘κ°„μ—μ„œ κ°€λ‘œμ±„μ§€ λͺ»ν•˜λ„둝(νŒ¨ν‚· μŠ€λ‹ˆν•‘ λ°©μ§€) μ•”ν˜Έν™” 터널을 λš«λŠ” κΈ°μˆ μž…λ‹ˆλ‹€. 이λ₯Ό μœ„ν•΄μ„œλŠ” SSL μΈμ¦μ„œκ°€ ν•„μš”ν•œλ°, κ³Όκ±°μ—λŠ” λΉ„μŒŒμ§€λ§Œ μš”μ¦˜μ€ Let’s EncryptλΌλŠ” λΉ„μ˜λ¦¬ κΈ°κ΄€μ—μ„œ 무료둜 λ°œκΈ‰ν•΄ μ€λ‹ˆλ‹€!

이 μž‘μ—…μ„ μžλ™ν™”ν•΄ μ£ΌλŠ” 도ꡬ가 λ°”λ‘œ **Certbot(μ„œνŠΈλ΄‡)**μž…λ‹ˆλ‹€.

전체적인 ꡬ좕 μˆœμ„œ (APEX-62 μ•‘μ…˜ ν”Œλžœ)

  1. Nginx μ„€μ • 파일(nginx.conf) μž‘μ„±: β€œ80번(HTTP)으둜 였면 443(HTTPS)으둜 μ«“μ•„λ‚΄κ³ , /api둜 였면 λ°±μ—”λ“œλ‘œ 보내!” λΌλŠ” κ·œμΉ™μ„ μ μŠ΅λ‹ˆλ‹€.

  2. docker-compose.yml 에 Nginx와 Certbot μΆ”κ°€: κΈ°μ‘΄ ν”„λ‘ νŠΈ/λ°±μ—”λ“œ μ»¨ν…Œμ΄λ„ˆμ™€ ν•¨κ»˜ Nginx μ»¨ν…Œμ΄λ„ˆλ₯Ό λ„μš°κ³  80, 443 포트λ₯Ό μ™ΈλΆ€λ‘œ κ°œλ°©ν•©λ‹ˆλ‹€.

  3. μΈμ¦μ„œ λ°œκΈ‰ (Certbot μ‹€ν–‰): apex-f1.site λ„λ©”μΈμ˜ 주인이 λ§žλŠ”μ§€ 확인받고 μΈμ¦μ„œλ₯Ό μ„œλ²„μ— λ‹€μš΄λ‘œλ“œν•©λ‹ˆλ‹€.

  4. ν™˜κ²½λ³€μˆ˜ 일괄 μˆ˜μ • (http:// ➑️ https://): 이제 λ³΄μ•ˆ 톡신이 μ™„μ„±λ˜μ—ˆμœΌλ‹ˆ, ν”„λ‘ νŠΈμ—”λ“œμ˜ NEXT_PUBLIC_API_URLκ³Ό λ°±μ—”λ“œμ˜ CORS μ„€μ • 등을 λͺ¨λ‘ https://apex-f1.site둜 λ°”κΏ‰λ‹ˆλ‹€.