LoginSignup
3
3

More than 1 year has passed since last update.

【SpringBoot】内包TomcatとApacheを連携する

Last updated at Posted at 2022-02-27

SpringBootでは内包TomcatのAppサーバ、Webサーバを使用してJarファイル単体で動かすことが可能です(Gradle設定が必要)
ですが、TomcatのWebサーバでは機能性、安定性に不安が残るため、Apacheを使用したい場合があります。

内包Tomcatの設定

@ValueではローカルでTomcatのWebサーバを使用するようにymlで環境を分けております。
@Overrideでcustomizeメソッドの設定を変更しております。
設定内容の説明についてはコメントの通り。

TomcatCustomizer.java
@Component
public class TomcatCustomizer implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> {

	@Value("${data.protcol}")
	private String protcol;
    private static final Logger logger = LoggerFactory.getLogger(TomcatCustomizer.class);

	@Override
    public void customize(TomcatServletWebServerFactory factory) {
		if(protcol.equals("AJP")) {
			logger.info("Tomcat protocol:AJP");
	    	try{
	            InetAddress address = InetAddress.getByName("127.0.0.1");
		    	factory.setAddress(address); //ローカルを指定
		        factory.setProtocol("AJP/1.3"); //AJPを使用
		        factory.setPort(8009); //ポートを8009番で受付
		        factory.getTomcatConnectorCustomizers()
		        .add(c -> c.setProperty("secretRequired", "false")); //シークレットキーをFalseに変更
	    	}catch(Exception e) {
	    		//Tomcat編集エラー処理
	    	}
    	}else {
			logger.info("Tomcat protocol:HTTP");
    	}
   	}
}

Apacheの設定

Tomcatの設定に合わせプロトコルをAJP、ポートを8009に設定する

/etc/httpd/conf/httpd.conf
ProxyPass / ajp://localhost:8009/
3
3
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3