티스토리 뷰
일단 내장톰캣을 가진 스프링부트 설치 및 기본 세팅은 아래 블로그 참고하였습니다
https://yoonhoou.tistory.com/20
start.spring.io로 프로젝트를 만들었다면
pom.xml 파일의 dependencies 안에 아래 내용을 추가해줍니다
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
그리고 ajp 설정 정보를 application.properties에 작성해줍니다
저는 서버 포트를 2222로, ajp protocol은 AJP/1.3으로, ajp port는 8109로 설정해주었습니다.
server.port=2222
tomcat.ajp.protocol=AJP/1.3
tomcat.ajp.port=8109
tomcat.ajp.enabled=true
그리고 DemoApplication.java가 있는 기본 패키지에 ContainerConfig 클래스를 생성하여
ajp 설정 소스코드를 입력해줍니다.
import org.apache.catalina.connector.Connector;
import org.apache.coyote.ajp.AbstractAjpProtocol;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class ContainerConfig {
@Value("${tomcat.ajp.port}")
int ajpPort;
@Value("${tomcat.ajp.protocol}")
String ajpProtocol;
@Value("${tomcat.ajp.enabled}")
boolean tomcatAjpEnabled;
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addAdditionalTomcatConnectors(createAjpConnector());
return tomcat;
}
private Connector createAjpConnector() {
Connector ajpConnector = new Connector(ajpProtocol);
ajpConnector.setPort(ajpPort);
ajpConnector.setSecure(false);
ajpConnector.setAllowTrace(false);
ajpConnector.setScheme("http");
((AbstractAjpProtocol) ajpConnector.getProtocolHandler()).setSecretRequired(false);
return ajpConnector;
}
}
혹시 모르니 project > Clean, Run As > Maven install까지 해주고
스프링부트 프로젝트를 실행시켜보면 콘솔창에 아래와 같이 ajp 설정 완료내용을 확인할 수 있습니다
끝입니다!
+추가내용
계속 ajp 포트가 127.0.0.1로 먹혀서 설정이 안되는 에러 발생 시 (Apache Tomcat AJP 취약점 보안 조치로 인한 에러)
취약점 보안조치 참고블로그
https://sarc.io/index.php/tomcat/1876-tomcat-server-xml
1. application.properties에 아래 내용 추가
tomcat.ajp.address=0.0.0.0
tomcat.ajp.allowedRequestAttributesPattern=.*
2. Connecter에 아래 내용 추가
ajpConnector.setProperty("address",address);
ajpConnector.setProperty("allowedRequestAttributesPattern", allowedRequestAttributesPattern);
하면 됩니다!
'프로그래밍 > Java' 카테고리의 다른 글
[오류해결] SPRING JAR 배포 후, 외부경로에 동적으로 저장되는 파일들 호출하기 (2) | 2022.09.04 |
---|---|
[java] List of Map 정렬하기 (0) | 2022.08.29 |
[spring] spring thymeleaf 반복되는 내용(헤더,푸터,메뉴) html 불러오기 (0) | 2022.08.15 |
[오류해결] This application requires a Java Runtime Environment 11 (64-bit) - 오류 해결 방법 (0) | 2022.08.10 |
[오류해결] JAVA에서 JSON API parse시 ALLOW_NON_NUMERIC_NUMBERS, Object타입 등의 에러해결 (0) | 2022.07.12 |