๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
TroubleShooting

Spring Cloud Gateway - Invalid host: lb://auth_service ์—๋Ÿฌ ํ•ด๊ฒฐ๊ธฐ

by ์ฐฝ๋”ฐ์˜ค 2025. 6. 23.
728x90

๐Ÿ” ๋ฌธ์ œ ์ƒํ™ฉ

Spring Cloud ๊ธฐ๋ฐ˜์˜ MSA ํ”„๋กœ์ ํŠธ์—์„œ Spring Cloud Gateway๋ฅผ ์ด์šฉํ•ด ์ธ์ฆ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค(auth-service)๋กœ ๋ผ์šฐํŒ…์„ ๊ตฌ์„ฑํ•˜๋˜ ์ค‘, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

java.lang.IllegalStateException: Invalid host: lb://auth_service

์ฒ˜์Œ์—๋Š” Eureka์— ์„œ๋น„์Šค๊ฐ€ ์ œ๋Œ€๋กœ ๋“ฑ๋ก๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜, Gateway์—์„œ fetch-registry ์„ค์ •์ด ์ž˜๋ชป๋๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ, ๋กœ๊ทธ๋ฅผ ์•„๋ฌด๋ฆฌ ์‚ดํŽด๋ด๋„ ๋ชจ๋“  ์„ค์ •์€ ์ •์ƒ์ ์œผ๋กœ ๋ณด์˜€๋‹ค.

 


โš™๏ธ ๊ด€๋ จ ์„ค์ •

โœ… Gateway application.yml ์˜ˆ์‹œ

spring:
  application:
    name: gateway-service

  cloud:
    gateway:
      discovery:
        locator:
          enabled: true
      routes:
        - id: auth-service
          uri: lb://auth_service
          predicates:
            - Path=/auth/**

โ— ์›์ธ ๋ถ„์„

์—๋Ÿฌ ๋ฉ”์‹œ์ง€์˜ ํ•ต์‹ฌ์€ ๋ฐ”๋กœ ์ด ๋ถ€๋ถ„์ด๋‹ค:

Invalid host: lb://auth_service

 

Spring Cloud Gateway๋Š” uri: lb://์„œ๋น„์Šค์ด๋ฆ„ ํ˜•์‹์œผ๋กœ Eureka์— ๋“ฑ๋ก๋œ ์„œ๋น„์Šค์™€ ํ†ต์‹ ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ์‚ฌ์‹ค์€:

๐Ÿ”น lb:// ๋’ค์— ์˜ค๋Š” ์„œ๋น„์Šค๋ช…์€ Eureka์— ๋“ฑ๋ก๋œ spring.application.name๊ณผ ์ •ํ™•ํžˆ ์ผ์น˜ํ•ด์•ผ ํ•˜๋ฉฐ,
๐Ÿ”น ํ•˜์ดํ”ˆ(-)์€ ํ—ˆ์šฉ๋˜์ง€๋งŒ, ์–ธ๋”๋ฐ”(_)๋Š” ๋น„ํ‘œ์ค€์ด๋ฉฐ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚จ๋‹ค.


๐Ÿ“Œ Eureka ๋ช…๋ช… ๊ทœ์น™ (RFC ์ฐธ๊ณ )

  • ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ๊ทœ์น™์€ RFC 952, RFC 1123์—์„œ ์ •์˜๋จ
  • ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์—๋Š” ํ•˜์ดํ”ˆ(-)์€ ํ—ˆ์šฉ, ์–ธ๋”๋ฐ”(_)๋Š” ํ—ˆ์šฉ๋˜์ง€ ์•Š์Œ
  • Eureka ๋ฐ Spring Cloud LoadBalancer๋Š” ์ด ๊ทœ์น™์„ ๋”ฐ๋ฆ„

โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

์„œ๋น„์Šค ์ด๋ฆ„์—์„œ ์–ธ๋”๋ฐ”(_)๋ฅผ ํ•˜์ดํ”ˆ(-)์œผ๋กœ ๋ฐ”๊พธ๋ฉด ๋œ๋‹ค.

 

๋ณ€๊ฒฝ ์ „

spring:
  application:
    name: auth_service

# Gateway
uri: lb://auth_service

๋ณ€๊ฒฝ ํ›„

spring:
  application:
    name: auth-service

# Gateway
uri: lb://auth-service

๐Ÿ”„ ๋ถ€๊ฐ€ ์กฐ์น˜ ์‚ฌํ•ญ

  • Eureka ๋Œ€์‹œ๋ณด๋“œ (http://localhost:8761)์—์„œ ์‹ค์ œ ๋“ฑ๋ก๋œ ์„œ๋น„์Šค ์ด๋ฆ„์„ ํ™•์ธ
  • Gateway ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋จผ์ € ์˜ฌ๋ผ๊ฐ€๊ณ  auth-service๊ฐ€ ๋Šฆ๊ฒŒ ๋“ฑ๋ก๋œ ๊ฒฝ์šฐ, Gateway ์žฌ์‹œ์ž‘ ํ•„์š”
  • ๋ชจ๋“  ์„œ๋น„์Šค๊ฐ€ ๋™์ผํ•œ Docker ๋„คํŠธ์›Œํฌ (์˜ˆ: msa-net)์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์–ด์•ผ ํ•จ

๐Ÿ’ฌ ๋งˆ๋ฌด๋ฆฌํ•˜๋ฉฐ

์ด ๋ฌธ์ œ๋Š” ๋‹จ์ˆœํ•œ ๋„ค์ด๋ฐ ์ด์Šˆ์ด์ง€๋งŒ, ์ง์ ‘ ๊ฒช์ง€ ์•Š์œผ๋ฉด ์‰ฝ๊ฒŒ ๊ฐ„๊ณผํ•  ์ˆ˜ ์žˆ๋‹ค. ํŠนํžˆ auth_service์ฒ˜๋Ÿผ ์–ธ๋”๋ฐ”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ”ํ•œ ๋„ค์ด๋ฐ ์Šต๊ด€์ด๋ผ๋ฉด ๋”๋”์šฑ ๊ทธ๋ ‡๋‹ค.

์ด๋ฒˆ ๊ฒฝํ—˜์„ ํ†ตํ•ด:

โœ… MSA ํ™˜๊ฒฝ์—์„œ๋Š” ์„œ๋น„์Šค ์ด๋ฆ„๋„ DNS ํ˜ธํ™˜์„ฑ์„ ๊ณ ๋ คํ•ด ์ž‘๋ช…ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ตํ›ˆ์„ ์–ป์—ˆ๋‹ค.