Apache Tomcat 8.5.x 이후 버전부터는 AJP Connector 의 secretRequired 기본값이 true 로 변경되었습니다. 이 기능에 대해서 이해하기 위해서는 secret 지시자의 역할에 대해 알아야 합니다.
secret 이 비밀 키워드를 가진 작업자의 요청 만 수락됩니다. 기본값은 null입니다. secretRequired 가 명시적으로 false로 구성 되지 않은 경우 이 속성은 널이 아니며 길이가 0 이 아닌 값으로 지정해야합니다. 이 속성이 널이 아니고 길이가 0이 아닌 값으로 구성된 경우 worker 는 일치하는 값을 제공 해야 합니다. 그렇지 않으면 secretRequired 설정에 관계없이 요청이 거부됩니다.secretRequired 이 속성이 true인 경우 비밀 속성이 널이 아니고 길이가 0이 아닌 값으로 구성된 경우에만 AJP 커넥터가 시작됩니다. 이 속성 은 AJP 커넥터를 시작하기 위해 비밀 속성을 지정 해야하는지 여부 만 제어합니다. 기본값은 true입니다. 이 속성은 커넥터가 신뢰할 수 있는 네트워크에서 사용될 때만 false 설정해야 합니다.
즉 secretRequired=true 인 경우 secret 값을 설정해야하며 WEB-WAS간에 서로 secret에 정의된 값이 일치하는 경우에만 연결을 수락합니다.
AJP Connector 설정에 secret=VALUE 형태의 값을 넣어준다.
<Connector port="8009"
secretRequired="true" <- 8.5.x 버전 이후로는 기본값이 true 이므로 생략 가능
secret="itismysecretkey" <- secret 값 설정
protocol="AJP/1.3"
redirectPort="8443" />
이렇게 설정 한 후 웹서버의 workers.properties 설정에서 아래와 같이 동일한 secret값을 설정해주도록 한다.
worker.balancer.balance_workers=node11 worker.node11.reference=worker.template worker.node11.host=127.0.0.1 worker.node11.port=8009 worker.node11.activation=A worker.node11.secret=itismysecretkey <- secret 값 설정