Front/WebServer

[Apache] SpringBoot AJP 포트 설정하기

헹창 2020. 9. 8.
반응형

spec.

  • springboot web project
  • war export

AJP 포트 설정

  • 이때 AJP 포트는 프로젝트가 올라가는 톰캣에서 설정한 AJP 포트와 같아야 한다.
  • 톰캣 AJP 포트 설정은 아래 나와있다.
package kr.co.neighbor21.ti.temp.web.config;

import org.apache.catalina.connector.Connector;
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 {
	
	@Bean
	public ServletWebServerFactory servletContainer() {
		TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
		tomcat.addAdditionalTomcatConnectors(createAjpConnector());
		return tomcat;
	}
	
	private Connector createAjpConnector() {
		Connector ajpConnector = new Connector("AJP/1.3");
		ajpConnector.setPort(9099);
		ajpConnector.setSecure(false);
		ajpConnector.setAllowTrace(false);
		ajpConnector.setScheme("http");
		return ajpConnector;
	}
}

 

프로젝트 war 파일 tomcat 에 배포

프로젝트 war 파일 배포하여 톰캣에 올린 뒤 포트 설정은 다음 게시글을 참고한다.

 

[Spring] 전자정부 웹프로젝트 war파일 Tomcat에 배포하는 방법 + Tomcat 포트 및 메모리 설정

[Spring] 전자정부 웹프로젝트 war파일 Tomcat에 배포하는 방법 + Tomcat 포트 및 메모리 설정  로컬 이클립스에서 개발한 프로젝트를 실제 사용할 서버에 배포할 때 단순한 JSP파일같은 경우는 간단하�

haenny.tistory.com

 

 

톰캣 AJP 포트는 설정하는 부분은 다음 코드에 "9099" 부분에 설정한 포트를 넣어주면 된다.

<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="9099" protocol="AJP/1.3" redirectPort="8443">

 

이제 이 톰캣으로 프로젝트가 잘 실행되는 지 우선 확인해본다.

실행방법 또한 위 게시글의 "CHAP3.  War파일 톰캣서버에 배포하기"  참고하면 된다.

 

 

Apache 설정

workers.properties 설정

Apache24 폴더에 conf 경로로 들어가서 workers.properties 파일을 생성하여 다음 내용을 입력한다.

worker.list=worker1

worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=9099

httpd.conf 설정

같은 경로(Apache24/conf)httpd.conf 파일을 편집(Edit)으로 연다.

다음 위치에 workers.properties 파일을 연결하여 설정한 workers에 프로젝트 컨텍스트를 연결해준다.

JKmount /프로젝트 컨텍스트 /* 워커명
.
.
.

#
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:

LoadModule jk_module modules/mod_jk.so

JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info

JKmount /WEBTEMP/* worker1
.
.
.

 

 

이 아파치 설정 부분은 아파치를 8080 (httpd.conf 상단 Listen 에 설정한 포트) 로 요청이 들어온 경우

프로젝트 컨텍스트에 해당하는 worker1(워커명)을 보고,

workers.properties 에서 호스트와 포트를 찾아 그 프로젝트를 연결해주는 것이다.

 

728x90
반응형

댓글

추천 글