내장 톰캣을 사용해서 동작하는 스프링부트 기반 웹어플리케이션을 AJP 프로토콜을 이용해서 아파치 HTTPD 웹 서버와 연동할 일이 생겼다. 연동을 위해 할 내용은 생각보다 간단했다. 다음의 두 가지만 해 주면 된다.
- 스프링부트 어플리케이션: 내장 톰캣을 위한 AJP 커넥터 설정
- 아파치 웹 서버 : ProxyPass로 ajp 연동 설정
스프링부트 내장 톰캣 설정
내장 톰캣 설정에 AJP 커넥터를 추가한다.
@Configuration
public class ContainerConfig {
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
return container -> {
TomcatEmbeddedServletContainerFactory tomcat =
(TomcatEmbeddedServletContainerFactory) container;
Connector ajpConnector = new Connector("AJP/1.3");
ajpConnector.setProtocol("AJP/1.3");
ajpConnector.setPort(9090);
ajpConnector.setSecure(false);
ajpConnector.setAllowTrace(false);
ajpConnector.setScheme("http");
tomcat.addAdditionalTomcatConnectors(ajpConnector);
};
}
}
아파치 설정
아파치에 톰캣 관련 설정을 추가한다.
ProxyPass "/contextPath" "ajp://localhost:9090/contextPath"
그리고 아파치 서버를 재시작하면 끝이다.