2012-05-14 2 views
0

로드 밸런서 뒤에 n 개의 서버가 있습니다. http 요청이 들어 오면 라운드 로빈 방식으로 서버 중 하나로 라우팅됩니다. 제 질문은 HTTP 응답 (요청이 전달 된 서버)에서 서버 정보를 보낼 수있는 방법이 있습니까?Apache Tomcat 용 HTTP 응답 헤더에서 서버 정보를 얻는 방법

+0

로드 밸런서 스트립 헤더가 있습니까? 그렇지 않다면 왜 사용자 정의 헤더 항목을 추가 할 수 없습니까? –

+0

아직 ServletRequest 클래스를 보았습니까? – Sean

+0

응용 프로그램 코드를 변경하고 싶지 않습니다. Tomcat 수준에서이를 수행 할 수 있습니까? – Srinivas

답변

0

원하는 정보 (IP 주소 - 서버의 친숙한 이름)가 있으면 간단히 response.setHeader ("Backend-Machine", "ServerName")를 사용하여 헤더를 설정할 수 있습니다.

진짜 질문은 그 정보를 얻는 방법입니다. 대부분의 서버에는 여러 개의 NIC가 있습니다. 즉, 무작위로 하나를 선택하여 IP 주소를 반환 할 수는 없습니다 (누군가에게 도움이되지 않는 127.0.0.1을 얻게됩니다). 이것이 중요한 경우 JVM 시작시 서버를 식별하는 문자열이 포함 된 시스템 등록 정보를 설정하는 것이 좋습니다. 그런 다음 모든 응답에 해당 문자열을 추가하는 필터를 작성하십시오.

관련 문제