티스토리 뷰

728x90
반응형

 

 

일단 내장톰캣을 가진 스프링부트 설치 및 기본 세팅은 아래 블로그 참고하였습니다

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);

 

하면 됩니다!

 

 

728x90
반응형
댓글