인프런 커뮤니티 질문&답변
질문
작성
·
289
1
실습정말 잘 듣고있습니다. 몇가지 질문이 있습니다.
1.
xml파일의 gateway.ip 이 값은 어디서 쓰이는건지 궁금합니다.
이 값을 바꾸지 않아도 잘 작동이 되서 질문드립니다.
(제가 놓친 강의가 있다면 죄송합니다...)
2.
계속 403에러가 떠서 스프링 시큐리티 때문이라고 판단하여 일단 시큐리티의 hasipaddress 이부분을 없애고 permitall하여 사용하고 있습니다.
결과로 403 에러는 없어졌습니다.
원래 실습 방법처럼 하려면 hasipaddress이부분을 user서비스가 실행되는 ip주소로 바꿔줘야하는데 그러면 컨테이너가 실행될때 동적으로 바뀌는 주소값을 넣어줘야 한다고 생각하였습니다. (실행 순서에 따라 주소가 계속 바뀌기 때문)
이를 해결하기 위하여 어플리케이션.xml파일에 user.ip 값을 하나 만들고 hasipaddress의 부분에 env.getproperites("user.ip") 이런식으로 가져와서 사용하여 docker run 의 -e 옵션에 "user.ip=user-service" 이런식으로 사용하면 되나요?
답변 1
1
안녕하세요, 이도원입니다.
1. gateway.ip 설정값은 user-service의 WebSecurity.java 파일에서 사용자의 요청 IP를 제어아기 위한 용도로 사용되고 있습니다.
2. use-service에서의 403오류는 주로 hasIpAddress()에 지정되지 않은 IP로 접근하였을 때 발생합니다. 만약 도커 컨테이너를 이용하여 기동하고, 해당 IP가 변경되는 것을 걱정하시는 거면, 말씀하신 방법으로 변경하셔도 되고, 도커 컨테이너를 기동할 때, 순서의 제어 및 IP를 지정하실 수도 있습니다. 아래 github을 참고하시면, zookeeper와 kafka를 기동할 때 IP를 지정해서 사용하고 있습니다.
https://github.com/joneconsulting/msa_with_spring_cloud/blob/main/docker-files/docker-compose.yml
추가로, 실무에서는 docker 컨테이너만으로 서비스를 제공하는 것 보다는 Kubernetes와 같은 Orchestration tool을 이용하여 컨테이너를 제어하며, Kubernetes의 Service/Ingress 등을 이용하여 접속하는 IP를 제어하거나 Routing/Load Balancing 작업을 하고 있습니다.
감사합니다.





