티스토리 뷰
나는 Apache 와 Tomcat 을 연동한 뒤 SSL 을 적용하였다.
그리고 http로 접근되면 자동으로 https로 넘어가도록 설정하였다.
이렇게 설정하고 다시 보니 기존의 설정에서 불필요해진 설정들이 많이 생겨서 정리한다.
먼저 Apache24/conf/httpd.conf 파일을 열어서 ServerAdmin, ServerName 을 주석처리했다.
그리고 DocumentRoot 와 <Directory "C:/Program Files/Apache Software Foundation/Tomcat 7.0/webapps/simanager"> 도 모두 주석처리 했다.
왜냐하면 어차피 http로 붙으면 https로 자동으로 넘길테니 http접속에 대한 셋팅은 불필요해졌기 때문이다.
그리고 WEB-INF 폴더로의 접근을 막기 위한 셋팅을 추가한다.
(어디에 추가하든 상관 없다. 난 httpd.conf 파일의 맨 아래에 추가했다.)
<Directory "C:/Program Files/Apache Software Foundation/Tomcat 7.0/webapps/simanager/WEB-INF">
Order deny,allow
Deny from all
</Directory>
여기서 경로는 "C:/Program Files/Apache Software Foundation/Tomcat 7.0/webapps/*/WEB-INF" 로 설정하면 당연히 모든 웹 어플리케이션의 WEB-INF 폴더로 접근이 불가능해진다. 이 정도는 뭐 센스로 당연히 알아야겠지???
그 다음 mod_jk.conf 파일을 수정한다. 다른 것은 건드리지 않고 JkMount 부분을 삭제했다.
어차피 모든 통신은 SSL통신(https)에서 이뤄질 것이기 때문에 Apache24/conf/extra/httpd-ssl.conf 파일에 셋팅하면 된다.
자 말이 나온 김에 Apache24/conf/extra/httpd-ssl.conf 파일을 열어서 수정한다.
<VirtualHost *:443> 과 </VirtualHost> 사이에 다음의 설정을 추가한다.
JkMount /* ajp13
SetEnvIf Request_URI "/*.css" no-jk
SetEnvIf Request_URI "/*.jpg" no-jk
SetEnvIf Request_URI "/*.gif" no-jk
SetEnvIf Request_URI "/*.png" no-jk
SetEnvIf Request_URI "/*.html" no-jk
SetEnvIf Request_URI "/*.js" no-jk
이 셋팅의 의미는 주소창에 보여지는 컨텍스트 하위의 모든 것을 ajp13이라는 worker에 할당한다는 뜻이다.
즉, www.test.com/abc 와 같은 형태의 서블릿 맵핑을 mod_jk 를 통하여 톰캣에서 처리하겠다는 것이다.
만약 .do 형태로 이뤄진 어플리케이션이라면 JkMount /*.do ajp13 이렇게 셋팅하면 된다.
그리고 그 밑에 SetEnvIf 부분은 톰캣이 아닌 아파치에서 처리하고자 하는 파일의 형태를 지정한 것이다.
apache와 tomcat을 따로 설치하고 연동하는 이유가 바로 여기에 있다.
apache는 웹 서버이기 때문에 간단한 파일과 이미지만 처리하고 서버에서 처리하는 어플리케이션은 Tomcat에 넘겨서 처리하겠다는 것이다.
이렇게 해놓고 보니 이제 좀 알겠더라...
그리고 tomcat에서 server.xml 에 context를 설정해야 하는데 내가 여기서 이걸 제대로 안 해서 하루를 날려먹었다 ㅠㅠ
일단 8080 포트는 어차피 사용하지 않으니 설정을 막았다. 뭔 말이냐하면...
<!--<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />-->
이렇게 주석으로 막았다는 뜻이다.
그리고 다음 context를 설정해야 하는데 어디다 하냐면
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
이거 바로 아래에 추가하면 된다. 내가 추가한 것을 여기에 넣는다.
<Context path="" docBase="C:/Program Files/Apache Software Foundation/Tomcat 7.0/webapps/simanager" debug="0" privileged="true"
reloadable="true" crossContext="true" workDir="C:/Program Files/Apache Software Foundation/Tomcat 7.0/webapps/simanager/work" >
</Context>
내가 어제 하루 종일 삽질했던 이유...정확하게 어떤 현상이었냐 하면 브라우저에서 주소를 치고 접속하면...
C:/Program Files/Apache Software Foundation/Tomcat 7.0/webapps/simanager 경로에 있는 파일과 폴더의 목록이 보였다 ㅡ.ㅡ;
마치 ftp를 보는 것 같았다...젠장...
어제는 내가 context 를 설정하면서 docBase에다가 webapps/simanager 로 했었다.
왜 그랬냐하면...멍청이 같지만....
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
여기에 보니 appBase가 webapps로 되어있길래....난 webapps/simanager 이렇게만 하면 되는 줄 알았다...멍충이...ㅡ.ㅡ^
아무튼 적용 끝!
혹시 몰라서 설정한 파일들을 첨부해 놓아야지...그래야 나중에 또 써먹지 크크크크
'Dev Tools > WEB & WAS' 카테고리의 다른 글
Tomcat 에 SSL 설정하기 (0) | 2017.12.27 |
---|---|
윈도우 환경에 Apache 2.4 + Tomcat 7 연동, 사설인증서 발급 및 SSL 적용방법 (0) | 2017.11.20 |
- Total
- Today
- Yesterday
- AWS KMS
- 오라클
- 아파치
- Tomcat
- spring
- 톰캣
- redisson
- SSL
- 휴대폰번호 마스킹
- STS
- jvm특징
- 스프링
- AES with AWS KMS
- AES 암호화
- 자바 정규식
- svn
- commit
- 클래스로더
- 마스킹
- Eclipse
- redissonclient
- 이클립스
- apache
- AES Encryption
- Oracle
- Java
- AES 복호화
- AES Decryption
- RegExp
- 아파치 톰캣 연동
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |