Я настроил Zuul для маршрутизации и Eureka для обнаружения служб, и все работает нормально. Перед установкой Eureka я использовал server.address=127.0.0.1
для привязки моей фактической службы к localhost
, чтобы к ним можно было получить доступ только из шлюза Api.
При объединении Зуула и Эврики server.address=127.0.0.1
больше не работает. Я не могу получить доступ к своим фактическим конечным точкам REST ни изнутри моей сети, ни извне.
application.properties моего обнаружения службы Eureka:
spring.application.name=service-discovery
server.port=8761
eureka.client.registerWithEureka=false
eureka.client.fetchRegistry=false
application.properties моего шлюза Zuul API:
spring.application.name=api-gateway
zuul.prefix=/api
server.port=8080
ribbon.eureka.enabled=true
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
zuul.routes.library.path=/library/**
zuul.routes.library.serviceId=library
application.properties моей реальной службы REST:
spring.application.name=library
server.servlet.context-path=/library
server.port=8090
server.address=127.0.0.1
ribbon.eureka.enabled=true
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
Когда я удаляю server.address=127.0.0.1
из файла свойств службы REST, я, конечно, могу получить доступ к ресурсу - но также и без localhost
, чего я не хочу.
Итак, я пытаюсь добиться того, чтобы к моим маленьким микросервисам можно было получить доступ только из localhost
(после того, как запрос прошел через шлюз Zuul API). Кроме того, я хочу использовать Eureka для обнаружения сервисов и для того, чтобы иметь возможность предоставлять вторые экземпляры serives.