tomcat + apache 연동 (mok_jk)

Web 2017.11.08 11:06 Posted by iamksu

올바른 방법인지는 확신은 안되지만 우선 된다.



□ 목적


도메인  웹 호스팅 주소로 개발한 서비스들을 여러개 올리는데 80 port로 연결되게 해보자

 




□ mok_jk 설치


  주소 : https://tomcat.apache.org/download-connectors.cgi


 




□ Tomcat


적당한 위치에 Tomcat Down 후 압축 풀기


서비스 등록은 앞의 내용 참고

 




□ Web


wep application war 파일 생성 후 압축 풀기

 




□ 아파치 설치 확인 후 없으면 설치




□ tomcat conf/server.xml


▶기존 8080 말고 2개 서비스 올리기



[서비스 0]

설치 후 설정된 정보




[서비스 1 추가]

sample1.com, sample2.com는 도메인 웹호스팅 주소


 <Service name="sample1.com">

     <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>

     <Connector port="8010" protocol="AJP/1.3" redirectPort="8443"/>

     <Engine name="sample1.com"  defaultHost="localhost">

          <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>

          <Host name="localhost" appBase="/wep application 첫번째 서비스war 압축 푼 위치" unpackWARs="true"

                 autoDeploy="true" xmlValidation="false" 스xmlNamespaceAware="false">

          <Context path="/" docBase="/wep application 첫번째 서비스 war 압축 푼 위치" reloadable="true"

                 sessionCookieName="cs.smartbzt_JSESSIONID"/>

          </Host>

    </Engine>

 </Service>


[서비스 2추가]

 <Service name="sample2.com">

     <Connector port="8082" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>

     <Connector port="8011" protocol="AJP/1.3" redirectPort="8443"/>

     <Engine name="cs.smartbzt.com"  defaultHost="localhost">

          <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>

          <Host name="localhost" appBase="/wep application 두번째 서비스 war 압축 푼 위치" unpackWARs="true"

                 autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">

          <Context path="/" docBase="/wep application 두번째 서비스 war 압축 푼 위치" reloadable="true"

                 sessionCookieName="cs.smartbzt_JSESSIONID"/>

          </Host>

    </Engine>

 </Service>

 




□ /etc/httpd/conf/workers.properties 파일 생성


worker.list=worker1,worker2

worker.worker1.port=8010

worker.worker1.host=sample1.com => 으로 들어오는 것 처리

worker.worker1.type=ajp13

worker.worker1.lbfactor=1

worker.worker2.port=8011

worker.worker2.host=sample2.com => 으로 들어오는 것 처리

worker.worker2.type=ajp13

worker.worker2.lbfactor=1

 




□ vi /etc/httpd/conf/httpd.conf 에 내용 추가


LoadModule jk_module modules/mod_jk.so

JkWorkersFile conf/workers.properties

JkLogFile     logs/mod_jk.log

JkLogLevel    info

JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"


<virtualhost *:80>

    ServerName sample1.com

    DocumentRoot /wep application war 압축 푼 위치1

    JkMount /* worker1

</virtualhost>


<virtualhost *:80>

    ServerName sample2.com

    DocumentRoot /wep application war 압축 푼 위치2

    JkMount /* worker2

</virtualhost>

 




□ 실행


# systemctl start tomcat

# systemctl start httpd






□ 확인


예시의 sample1.com 대신


실제 도메인 웹 호스팅 된 cs.smartbzt.com 주소로 위의 단계를 설정하여 확인


주소 입력하면 포트 번호 입력 없이 들어 가지지는지 확인