apache는 참 심플한데, tomcat은 까다롭다..

설정하는 것도, 튜닝하는 것도 여러가지 손 봐줘야할 것들이 참 많다.

 

java와 php를 함께 사용 하기 위해서는 apache + tomcat 연동해서 사용 하는 방법이 가장 많이 사용 되며, 일반적인 방법이다.

또 한가지 방법은 php-java-bridge를 설치해서 연동 해주는 방법이 존재한다.

(헌데 이 방법은 시도 해보다가 실패하여 시간이 없는 관계로 다음 포스팅에 대체 하도록 할 예정.)

 

하고자 했던 작업은 이렇다 단독톰캣 사용 하다가 php를 사용해야 했고,

몇몇개의 서브도메인이 존재하며, port base의 가상호스트 설정도 필요.

(php-java-bridge 설치를 하고자 했으나 실패. 그래서 apache 연동 설정으로 변경.)

 

 

apache 설치과정 생략.

tomcat path : /usr/local/tomcat

apache path : /usr/local/apache2

php path : /usr/local/php

 

– tomcat 단독 구성 되어 있었기 때문에 80 port 사용 => 8080 port 변경

vi /usr/local/tomcat/conf/server.xml

#=== 중략 ====

<Connector port=”8080” protocol=”HTTP/1.1″
connectionTimeout=”20000″
redirectPort=”8443″ />
<!– A “Connector” using the shared thread pool–>
<!–
<Connector executor=”tomcatThreadPool”
port=”8080″ protocol=”HTTP/1.1″
connectionTimeout=”20000″
redirectPort=”8443″ />

 

* 반대로 위 커넥터 부분의 port를 Default 상태인 8080 => 80으로 변경하여 단독 톰켓 구성이 가능하다.

 

apache workers.properties 설정

– 80 외에 8009, 9099 port 와 같이 두개의 포트 추가 사용을 위해 세개의 worker.list 추가

vi /usr/local/apache2/conf/workers.properties

 

workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/local/java/
ps=/
worker.list=rubi1,rubi2,rubi3

worker.rubi1.port=8009
worker.rubi1.host=localhost
worker.rubi1.type=ajp13
worker.rubi1.lbfactor=1

worker.rubi2.port=8010
worker.rubi2.host=localhost
worker.rubi2.type=ajp13
worker.rubi2.lbfactor=1

worker.rubi3.port=8011
worker.rubi3.host=localhost
worker.rubi3.type=ajp13
worker.rubi3.lbfactor=1

 

apache 가상호스트 설정 (아파치 기본 설정 생략)

– vi /usr/local/apache2/conf/extra/httpd-vhosts.conf

 

NameVirtualHost *:80

NameVirtualHost *:8001
NameVirtualHost *:9099

 

<VirtualHost *:80>
ServerAdmin admin@rubi.kr
DocumentRoot “/home/rubi/public_html
ServerName rubi.kr
ServerAlias www.rubi.kr
ErrorLog “logs/www.rubi.kr-error_log”
CustomLog “logs/www.rubi.kr-access_log” common
JkMount /*.jsp rubi1
JkMount /*.do rubi1

JkMount /servlet/* rubi1
</VirtualHost>

<VirtualHost *:8001>
ServerAdmin admin@rubi.kr

DocumentRoot “/home/rubi/www2
ServerName rubi.kr
ServerAlias www.rubi.kr
ErrorLog “logs/8001-error_log”
CustomLog “logs/8001-access_log” common
JkMount /*.jsp rubi2
JkMount /*.do rubi2
JkMount /servlet/* rubi2
</VirtualHost>

<VirtualHost *:9099>
ServerAdmin admin@rubi.kr
DocumentRoot “/home/rubi/www3
ServerName rubi.kr
ServerAlias www.rubi.kr
ErrorLog “logs/9099-error_log”
CustomLog “logs/9099-access_log” common
JkMount /*.jsp rubi3
JkMount /*.do rubi3
JkMount /servlet/* rubi3
</VirtualHost>

 

 

– tomcat 가상호스트 설정

가상호스트 추가 진행, 기본 localhost path 변경

 

vi /usr/local/tomcat/conf/server.xml

 

<Host name=”rubi.kr” appBase=”/home/rubi/public_html”
unpackWARs=”true” autoDeploy=”true”
xmlValidation=”false” xmlNamespaceAware=”false”>
<Context path=”” docBase=”” reloadable=”true”/>
<Alias>www.rubi.kr</Alias>

 

<!– 80port로 2차 호스트인 test.rubi.kr 가상호스트 추가 –>

<Host name=”test.rubi.kr” appBase=”/home/test/www”

unpackWARs=”true” autoDeploy=”true”
xmlValidation=”false” xmlNamespaceAware=”false”>
<Context path=”” docBase=”” reloadable=”true”/>
</Host>

 

</Engine>
</Service>

 

<!– port 변경에 따른

<Service name=”Catalina2″>
<Connector port=”8002” protocol=”HTTP/1.1″
connectionTimeout=”20000″
redirectPort=”8443″ />
<Connector port=”8010″ protocol=”AJP/1.3″ redirectPort=”8443″ />
<Engine name=”Catalina2” defaultHost=”localhost”>
<Realm className=”org.apache.catalina.realm.UserDatabaseRealm”
resourceName=”UserDatabase”/>
<Host name=”rubi.kr” appBase=“/home/rubi/www2”
unpackWARs=”true” autoDeploy=”true”
xmlValidation=”false” xmlNamespaceAware=”false”>
<Context path=”” docBase=”” reloadable=”true”/>
</Host>
</Engine>
</Service>
<Service name=”Catalina3“>
<Connector port=”9100” protocol=”HTTP/1.1″
connectionTimeout=”20000″
redirectPort=”8443″ />
<Connector port=”8011″ protocol=”AJP/1.3″ redirectPort=”8443″ />
<Engine name=”Catalina3” defaultHost=”localhost”>
<Realm className=”org.apache.catalina.realm.UserDatabaseRealm”
resourceName=”UserDatabase”/>
<Host name=”rubi.kr” appBase=“/home/rubi/www3”
unpackWARs=”true” autoDeploy=”true”
xmlValidation=”false” xmlNamespaceAware=”false”>
<Context path=”” docBase=”” reloadable=”true”/>
</Host>
</Engine>
</Service>

 

 

tomcat 가상 호스트 설정시 아래 부분을 추가 해줌으로써 appbase= 지정경로 밑에 ROOT를 홈디렉토리로 인식하는 부분을 해결 할 수 있다.

<Context path=”” docBase=”” reloadable=”true”/>

 

여기까지가 설정 모두 종료.

 

http://www.rubi.kr/ 연결시 /home/rubi/public_html/ 내용 출력

http://www.rubi.kr:8001 연결시 /home/rubi/www2 출력

http://www.rubi.kr:9099 연결시 /home/rubi/www3 출력

http://test.rubi.kr 연결시 /home/test/www 출력