1. 개요
Spring Boot에 AJP 포트 설정을 추가하는 방법이다.
2. 방법 I
2-1. ContainerConfig 클래스 추가
import org.apache.catalina.connector.Connector;
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class ContainerConfig {
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
return container -> {
TomcatEmbeddedServletContainerFactory tomcat =
(TomcatEmbeddedServletContainerFactory) container;
Connector ajpConnector = new Connector("AJP/1.3");
ajpConnector.setPort(8109);
ajpConnector.setSecure(false);
ajpConnector.setAllowTrace(false);
ajpConnector.setScheme("http");
tomcat.addAdditionalTomcatConnectors(ajpConnector);
};
}
}
2-2. 부팅 로그 확인
2018-02-13 14:05:45.706 INFO 12972 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8180 (http) 8109 (http)
2018-02-13 14:05:49.681 INFO 12972 --- [ main] org.apache.coyote.ajp.AjpNioProtocol : Initializing ProtocolHandler ["ajp-nio-8109"] 2018-02-13 14:05:49.699 INFO 12972 --- [ main] org.apache.coyote.ajp.AjpNioProtocol : Starting ProtocolHandler ["ajp-nio-8109"] 2018-02-13 14:05:49.779 INFO 12972 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8180 (http) 8109 (http)
3. 방법 II
3-1. application.properties
다음 설정을 추가한다.
tomcat.ajp.protocol=AJP/1.3 tomcat.ajp.port=8109 tomcat.ajp.enabled=true
3-2. ContainerConfig 클래스 추가
import org.apache.catalina.connector.Connector;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class ContainerConfig {
@Value("${tomcat.ajp.protocol}")
String ajpProtocol;
@Value("${tomcat.ajp.port}")
int ajpPort;
@Value("${tomcat.ajp.enabled}")
boolean tomcatAjpEnabled;
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
return container -> {
TomcatEmbeddedServletContainerFactory tomcat = (TomcatEmbeddedServletContainerFactory) container;
if (tomcatAjpEnabled) {
Connector ajpConnector = new Connector(ajpProtocol);
ajpConnector.setPort(ajpPort);
ajpConnector.setSecure(false);
ajpConnector.setAllowTrace(false);
ajpConnector.setScheme("http");
tomcat.addAdditionalTomcatConnectors(ajpConnector);
}
};
}
}
3-3. 부팅 로그 확인
2018-02-13 14:12:29.969 INFO 6932 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8180 (http) 8109 (http)
2018-02-13 14:12:33.171 INFO 6932 --- [ main] org.apache.coyote.ajp.AjpNioProtocol : Initializing ProtocolHandler ["ajp-nio-8109"] 2018-02-13 14:12:33.184 INFO 6932 --- [ main] org.apache.coyote.ajp.AjpNioProtocol : Starting ProtocolHandler ["ajp-nio-8109"] 2018-02-13 14:12:33.228 INFO 6932 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8180 (http) 8109 (http)