티스토리 뷰
일단 내장톰캣을 가진 스프링부트 설치 및 기본 세팅은 아래 블로그 참고하였습니다
https://yoonhoou.tistory.com/20
[Spring] 스프링 부트 - Spring Boot 설치 및 기본 세팅
1. Spring Boot install 😵주의사항 1️⃣ 내장 Tomcat을 사용하고 있기 때문에 기존에 사용하고 있는 Tomcat은 비활성화해야 한다. (서버 충돌 방지) 2️⃣ index.jsp도 Controller가 있어야 한다. 3️⃣ 기..
yoonhoou.tistory.com
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
Tomcat 업그레이드 후 server.xml 설정 변경.
Tech Note 정보 808베이스 님이 작성하신 글입니다. 카테고리: [ Apache Tomcat ] 게시됨: 17 March 2020 작성됨: 17 March 2020 최종 변경: 17 March 2020 조회수: 95106 최근 Apache Tomcat의 AJP 취약점 발표이후, 해당
sarc.io
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 |