개발 블로그
[교육] 하나의 엔진에 두개의 도메인 본문
하나의 엔진에 두개의 도메인(test.co.kr, abc.co.kr)
- test.co.kr과 abc.co.kr 서로 다른 소스 연결
- 둘다 context path = "/" 여야 함
- 동일 upload 가상 폴더 연결
- 도메인단위로 다른 로그 지정
- get/post 한글처리
- jndi 연결
일단 나는 이미 첫번째 과제를 완료한 후 vm을 그대로 복사해서 그 위에 만들었다
막 기본 설정 다시 설치하기 귀찮아
webapps 디렉토리 내에 두 개의 애플리케이션을 만든다
- <TOMCAT_HOME>/webapps/test
- <TOMCAT_HOME>/webapps/abc
그리고 연결될 각각의 폴더 안에 index.jsp를 만들어줬슴다
vi /etc/hosts
도메인 두개를 로컬 호스트와 연결해준다
vi /engine/apache/conf/httpd.conf
ServerName 이 이전에 했던 설정 그대로
ServerName www.milk.com:80 이렇게 되어 있는데
이 도메인은 더 이상 사용하지 않을 것이니 지워주고 localhost:80 설정해준다
톰캣과의 연결을 위해서 ..
VirtualHost 설정 풀려져있는지 확인
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
주석 풀어주고 아래의 것도 추가해주기
#mod_jk.so 모듈의 위치
LoadModule jk_module /usr/lib64/httpd/modules/mod_jk.so
#workers.properties 설정 파일 위치
JkWorkersFile /engine/apache/conf/workers.properties
#mod_jk log 위치
JkLogFile /engine/apache/logs/mod_jk.log
#Load balancing workers will not function properly 오류 대응
JkShmFile /engine/apache/logs/mod_jk.shm
이제 방금 주석을 풀었던 파일을 수정하겠슴둥
vi /engine/apache/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerName test.co.kr
ServerAlias www.test.co.kr
# Document root 설정 (Tomcat으로 프록시 연결할 때는 필요 없음)
DocumentRoot "/engine/apache2.4/htdocs"
# 80번 포트 요청을 Tomcat의 8080 포트로 프록시
ProxyPass / http://test.co.kr:8080/
ProxyPassReverse / http://localhost:8080/
# Tomcat으로 요청을 전달
JkMount /* worker1
</VirtualHost>
<VirtualHost *:80>
ServerName abc.co.kr
ServerAlias www.abc.co.kr
# Document root 설정 (Tomcat으로 프록시 연결할 때는 필요 없음)
DocumentRoot "/engine/apache2.4/htdocs"
# 80번 포트 요청을 Tomcat의 8080 포트로 프록시
ProxyPass / http://abc.co.kr:8080/
ProxyPassReverse / http://localhost:8080/
# Tomcat으로 요청을 전달
JkMount /* worker1
</VirtualHost>
여기에 첨에 ProxyPass / http://각각의 도메인.co.kr:8080/
으로 설정해주는게 중요하다
첨엔 ProxyPass / http://localhost.co.kr:8080/
로 했다 두 사이트로 들어가도 계속 고양이만 나와서 짜증났음
httpd.conf에서 설정했던 위치에 workers.properties 도 설정 되어있는지 확인하고
이제는 tomcat의 server.xml을 설정해준다
원래 설정 되어있던 milk.com의 Host 설정은 지워주고
<Host name="test.co.kr" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="/" docBase="/engine/tomcat/webapps/test">
<!-- 가상 폴더 설정: /upload -->
<Resources>
<PreResources className="org.apache.catalina.webresources.DirResourceSet"
base="/upload" webAppMount="/upload" />
</Resources>
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="/var/log/tomcat/test"
prefix="test_access_log"
suffix=".log"
pattern="%h %l %u %t "%r" %s %b" />
</Context>
</Host>
<Host name="abc.co.kr" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="/" docBase="/engine/tomcat/webapps/abc">
<!-- 가상 폴더 설정: /upload -->
<Resources>
<PreResources className="org.apache.catalina.webresources.DirResourceSet"
base="/upload" webAppMount="/upload" />
</Resources>
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="/var/log/tomcat/abc"
prefix="abc_access_log"
suffix=".log"
pattern="%h %l %u %t "%r" %s %b" />
</Context>
</Host>
로그 폴더도 만들어졌구요
이제는 JNDI 설정을 하겠슴
vi /engine/tomcat/conf/context.xml
아니 근데 어이없는게, www.test.co.kr은 은 내가 만든 페이지가 뜨는데
www.abc.co.kr 자동으로 https:// 가 되어서
알고 보니
server.xml 파일에서 HTTP → HTTPS 리다이렉트를 막기 위해 redirectPort="8443" 속성을 제거하거나, HTTP와 HTTPS를 별도로 처리할 수 있도록 설정합니다.
리다이렉트 포트 설정을 지워줬다잉
그니까 정상적으로 뜬다
<Connector protocol="AJP/1.3"
address="::1"
port="8009"
redirectPort="8443" />
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8" />
<Connector protocol="AJP/1.3"
address="::1"
port="8009" />
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8" />
여기의 리다이렉트 포트를 지워주고 브라우저 캐시도 지워주니
저 로봇이 안뜬다 후
그리고 URIEncoding="UTF-8" 설정도 잊지 않고 넣어주고
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Abc</title>
</head>
<body>
<h1>Hello, Abc</h1>
<p>안녕하세요 한글이 나옵니다</p>
</body>
</html>
jsp도 설정해주면
이렇게 뜨고여 가상 폴더 설정한
얘도 정상적으로 뜸.. JNDI 설정 테스트는 차차ㅎㅎ
'리눅스 | 서버' 카테고리의 다른 글
[교육] 하나의 VM에 2개의 엔진을 사용에 두개의 도메인 (0) | 2024.09.27 |
---|---|
아파치가 두 개여서 설정이 꼬이는 문제 해결 (0) | 2024.09.24 |
[교육] 하나의 엔진에 하나의 도메인 (2) | 2024.09.20 |
[이것이 리눅스다] 포트 포워딩 (0) | 2024.07.24 |
[이것이 리눅스다] 방화벽 서버 (0) | 2024.07.23 |