1개 서버에서 여러개의 서비스를 하고 싶을 때, Apache1개 - Tomcat 여러개를 설정하는 mod_proxy 방법 입니다.
참고로 Apache와 Tomcat을 연동하는 방법은 3가지가 있는데, 여기서는 mod_proxy 방법에 대해서 설명합니다.
1. AJP
2. mod_proxy
3. mod_proxy_ajp
AJP 방법은 아래 링크에서 설명 하였습니다.
설계
제가 서비스 할 것은 4개 입니다.
각각 도메인이 구분됩니다.
Apache에서 Tomcat으로 포워딩 되는데, Tomcat 마다 서비스 포트를 다르게 설정 합니다.
[Apache] conf/httpd.conf
mod_proxy 모듈을 사용하고, 관련된 설정 파일의 경로를 명시합니다.
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
[Apache] conf/extra/httpd-vhosts.conf
어떤 URL로 접속했을 때 어떤 톰캣 서비스 포트로 포워딩 해라 라는 설정입니다.
<VirtualHost *:80>
ServerName www.eoeca.com
ServerAlias eoeca.com
ProxyPass / http://localhost:8080/
</VirtualHost>
<VirtualHost *:80>
ServerName www.domain.com
ServerAlias domain.com
ProxyPass / http://localhost:8081/
</VirtualHost>
<VirtualHost *:80>
ServerName sso.domain.com
ProxyPass / http://localhost:8082/
</VirtualHost>
<VirtualHost *:80>
ServerName secret.domain.com
ProxyPass / http://localhost:8083/
</VirtualHost>
[Tomcat] conf/server.xml
Tomcat의 서비스 포트를 활성화 합니다.
각 Tomcat마다 서비스 포트를 각각 포트(8080, 8081, 8082, 8083)에 맞게 설정해줘야 합니다.
저는 apache와 tomcat이 같은 서버이기 때문에 address="localhost" 로 설정 했습니다.
그러면 외부에서 Tomcat의 서비스 포트로 접속을 못하고, 로컬에서만 Tomcat의 서비스 포트로 접속 가능합니다.
<Connector port="8080" protocol="HTTP/1.1"
address="localhost"
connectionTimeout="20000"
redirectPort="8443" />
'개발 - WEB, WAS, DB' 카테고리의 다른 글
win-acme renewal 404 오류 해결 (0) | 2022.03.30 |
---|---|
Apache - AH00547: Could not resolve host name 오류 (0) | 2022.01.02 |
Apache 1개 - Tomcat 여러개 AJP 설정 방법 (0) | 2022.01.01 |
리눅스에서 일반계정으로 80포트 사용하기 (0) | 2021.05.12 |
VPN IP 차단방법(톰캣 IP 접근제한) (0) | 2020.07.23 |