Docker+Spring cloud 액세스 오류 Whitelabel Error Page

2834 단어
테스트 서버 3대: 10.167.200.75, 10.167.200.76, 10.167.200.77 두 항목: question-service(8861), question-views(8862), question-center(8761)springcloud, Docker,nginx
서비스,views 프로젝트는center의 등록 센터를 통해 서비스를 등록 센터에 등록한 다음에 등록 센터에서 소비를 분배한다.docker 시작 컨테이너 명령:
docker run -d -p 8861:8861 --name question-service-c question-service-i
docker run -d -p 8862:8862 --name question-view-c question-view-i

docker 명령을 사용하여 프로젝트를 시작하면 정상적으로 시작할 수 있지만,view 프로젝트를 통해 페이지를 검증할 때 브라우저에서 다음과 같은 오류가 발생합니다.
Whitelabel Error Page
This application has no explicit mapping for/error, so you are seeing this as a fallback.
Thu May 24 00:55:01 EDT 2018 There was an unexpected error (type=Internal Server Error, status=500). Error resolving template "initTelCheck", template might not exist or might not be accessible by any of the configured Template Resolvers
백그라운드 로그 오류는 다음과 같습니다.
2018-05-24 00:53:25.182 [http-nio-8862-exec-8] ERROR org.thymeleaf.TemplateEngine - [THYMELEAF][http-nio-8862-exec-8] Exception processing template "initTelCheck": Error resolving template "initTelCheck", template might not exist or might not be accessible by any of the configured Template Resolvers org.thymeleaf.exceptions.TemplateInputException: Error resolving template "initTelCheck", template might not exist or might not be accessible by any of the configured Template Resolvers at org.thymeleaf.engine.TemplateManager.resolveTemplate(TemplateManager.java:870) at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:607)
프로젝트가thymeleaf 템플릿을 사용했기 때문에 템플릿 문제인 줄 알았습니다.그러나 분석과 추측을 통해 사실view 프로젝트가 등록센터를 통해 서비스 프로젝트를 방문할 때 서비스 프로젝트의 주소에 접근할 수 없습니다.(왜 틀의 오류를 보고했는지 도무지 알 수가 없다??)
기왕 문제의 소재를 찾았으니 어떤 원인을 찾아서 야기해야 한다.사실 단독 75, 76, 77 세 대의 기계 액세스 서비스의 주소는 모두 접근할 수 있는 것이다(즉 서비스 프로젝트가 시작되었다는 뜻이다). 그런데 왜view는 서비스 주소를 찾을 수 없습니까?왜냐하면 용기를 시작할 때 용기 자체의 명칭 공간이 있고 용기에 속하는 독립된 IP를 분배할 수 있기 때문이다. 등록 센터에서 서비스 프로젝트는 용기의 독립된 IP를 등록 센터에 등록한다. 이렇게 하면 등록 센터에 등록된 비추는 IP는 실제 접근 가능한 IP가 아니다(예를 들어 75이 기계, 서비스 프로젝트에 정상적으로 접근하는 것은http://10.167.200.75:8861/service그러나 등록 센터의 등록 정보의 IP는 0.0.0.0이지 10.167.200.75가 아니다). 이로 인해view가 등록 센터를 통해 서비스 항목을 요청할 때 등록 센터는 잘못된 주소를 비추게 된다.http://0.0.0.0:8861/service)
문제의 매듭을 찾았으니 어떻게 해결해야 합니까?서비스의 등록 IP에 문제가 있는 이상 정확한 IP를center(등록 센터)에 등록하는 방법을 강구해야 한다.어떻게 할까?컨테이너 생성 명령을 수정하여 다음을 수행할 수 있습니다.
docker run -d -p 8861:8861 --name question-service-c question-service-i

다음으로 수정
docker run -d -p 8861:8861 --net=host --name telrobot-question-service-c-test telrobot-question-service-i

네, 부팅 매개 변수를 추가합니다. - 넷=host는 무슨 뜻입니까?이 모드에서 만들어진 용기는 독립된 네트워크 Namespace를 가지지 않습니다. 즉, 독립된 네트워크 환경이 없습니다.그것은 호스트의 IP와 포트를 사용합니다.이렇게 되면 서비스 프로젝트가 등록센터에 등록된 IP 주소는 숙주의 실제 IP(75/76/77)가 된다.
문제 해결!이 레코드만!

좋은 웹페이지 즐겨찾기