차근차근/Linux

centOS에 아파치 + 톰캣 연동 4

예쁜꽃이피었으면 2017. 4. 17. 18:33


리눅스 서버에 아파치, 톰캣 설치 후 연동하는 것까지는 했고

지금 하려는 것은 . 톰캣 서버에 호스트를 두개 두는 것이다.



호스트를 두개 여러개 두려면 도메인이 따로 되어 있어야 하는 것 같다. 

테스트 서버이기 때문에 무료 도메인을 받았다.


아파치 VIRTUALHOST 설정

http://joont.tistory.com/46



https://okky.kr/article/335820


[Windows] Apache + Tomcat 연동

http://edmundtips.tistory.com/42



하면서 작성한 것이 아니지만 일단 생각나는 부분 적어둔다.


아파치와 톰캣은 연동이 된 상태이고



1.


톰캣의 server.xml에서 

<Engine name="기본으로 접속되었으면 하는 주소" defaultHost="localhost">

ex) www.cafe24.com





      <Host name="localhost"  appBase="webapps"

            unpackWARs="true" autoDeploy="true">

<Context docBase="nroot" path="usr/local/server/was1/apache-tomcat-7.0.77/webapps" />

        <!-- SingleSignOn valve, share authentication between web applications

             Documentation at: /docs/config/valve.html -->

        <!--

        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />

        -->


        <!-- Access log processes all example.

             Documentation at: /docs/config/valve.html

             Note: The pattern used is equivalent to using pattern="common" -->

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

               prefix="localhost_access_log." suffix=".txt"

               pattern="%h %l %u %t &quot;%r&quot; %s %b" />


      </Host>

<-------- 여기까지는 기본 소스


<!-- 추가한 부분 -->

   <Host name="www.도메인.com"  appBase="webapps"

            unpackWARs="false" autoDeploy="false">

<Alias>도메인.com</Alias>

<Context docBase="프로젝트명" path="디렉토리경로" />

</Host>

<Host name="www.서브도메인.tk"  appBase="webapps"

            unpackWARs="true" autoDeploy="true">

<Alias>서브도메인.tk</Alias>

<Context docBase="프로젝트명" path="디렉토리경로" />

</Host>

<!-- 추가한 부분 -->







2. 아파치 httpd.conf파일에서 


<Directory "도메인의 디렉토리 경로">


    Order Allow,Deny


    Allow from all


</Directory>




<Directory "서브도메인의 디렉토리 경로">


    Order Allow,Deny


    Allow from all


</Directory>


이거 추가하고



# Virtual hosts

Include conf/extra/httpd-vhosts.conf   <-여기 주석해제 후 이 파일찾아가서 수정


<VirtualHost *:80>

    ServerName 도메인

    ServerAlias www.도메인.com *.도메인.com *.도메인.*

    DocumentRoot "도메인의 디렉토리 경로"

    ErrorLog "logs/파일명은 마음대로-error-%Y%m%d.log"

    CustomLog "logs/파일명은 마음대로-%Y%m%d.log" common

 

    JkMount /*.do ajp13

    JkMount /*.jsp ajp13

    JkMount /*dwr/* ajp13

    JkMount /*servlet/* ajp13

    <Directory "도메인의 디렉토리 경로">

        AllowOverride FileInfo AuthConfig Limit Indexes

        Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec

        <Limit GET POST OPTIONS>

            Order allow,deny

            Allow from all

        </Limit>

        <LimitExcept GET POST OPTIONS>

            Order deny,allow

            Deny from all

        </LimitExcept>

    </Directory>

</VirtualHost>


<VirtualHost *:80>

    ServerName 서브도메인

    ServerAlias www.서브도메인.tk *.서브도메인.tk *.서브도메인.tk.*

    DocumentRoot "서브도메인의 디렉토리 경로"

    ErrorLog "logs/파일명은 마음대로-error-%Y%m%d.log"

    CustomLog "logs/파일명은 마음대로-%Y%m%d.log" common

 

    JkMount /*.do ajp13

    JkMount /*.jsp ajp13

    JkMount /*dwr/* ajp13

    JkMount /*servlet/* ajp13

    <Directory "서브도메인의 디렉토리 경로">

        AllowOverride FileInfo AuthConfig Limit Indexes

        Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec

        <Limit GET POST OPTIONS>

            Order allow,deny

            Allow from all

        </Limit>

        <LimitExcept GET POST OPTIONS>

            Order deny,allow

            Deny from all

        </LimitExcept>

    </Directory>

</VirtualHost>



이렇게만 했는데 됐다.





추가로 더 해야 하는 부분이있는데

지금 개발서버로 만들어야 하는 모양이


톰캣 /webapps 하위에 있는 폴더를.. 각가의 도메인으로 실행시키고

폴더명으로 서브도메인으로 진입할 수 있어야 한다.


 

톰캣/webapps

       └ Aroot <- 기본 도메인 연결 폴더 (ex. www.aaa.com)

       └ Broot <- 서브 도메인 연결 폴더 (ex. www.bbb.com)

이렇게되어 있고 www.aaa.com 에서  www.aaa.com/Broot를 했을 때 www.bbb.com로 넘어가야 한다고 한다.

도대체 이건 뭐라고 검색을 해야 할까..





반응형