본문 바로가기

웹 개발/Spring Boot

Spring Boot) 여러 포트 사용하기 (멀티 커넥트, 다중 포트)

8080에서도 접근 가능하고 https 적용했을때의 포트인 8443에서도 접근하고 싶다. 이때 멀티 커넥트를 해야 한다고 한다. 

 

package com.kpmg.lighthouse.tpplatform.tpplatform;

import java.util.Collections;

import org.apache.catalina.connector.Connector;
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 ServletConfiguration {

    @Value("${server.port.http}")
    private int serverPortHttp;

    @Bean
    public ServletWebServerFactory serverFactory(){
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
        tomcat.addAdditionalTomcatConnectors(createStandardConnector());
        return tomcat;
    }
    private Connector createStandardConnector(){
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setPort(serverPortHttp);
        return connector;
    }
}

server.port.http 값을 사용하기 위해서 프로퍼티 파일에 아래 프로퍼티를 추가해줘야 한다. 

server.port=8443
server.port.http=8080

 

이렇게 하면 8080과 8443 포트에서 모두 접근 가능하다.