728x90
728x90
여러 개의 도메인이 같은 IP 주소를 공유하고, 각 도메인이 특정 포트로 연결되도록 설정하려는 경우가 존재합니다. 이는 아파치 웹 서버에서 가상 호스팅(Virtual Hosting)을 사용하여 구현할 수 있으며, 이번 포스팅에서는 가상 호스팅에 짧은 개념과 설정 방법에 대해 적어 나가려고 합니다.
가상호스팅 (Virtual Hosting)
가상 호스팅은 하나의 웹 서버에서 여러 도메인을 호스팅 할 수 있게 해주는 방법으로 두 가지 주요 방식이 존재합니다. 첫 번째는 이름 기반 가상호스팅이고, 두 번째는 IP 기반 가상 호스팅입니다. 이번 포스팅에서는 하나의 IP 주소에서 여러 도메인을 포트별로 구분하여 호스팅 하는 방법을 설명합니다. 이를 포트 기반 가상 호스팅이라고 할 수 있습니다.
아파치 설정 파일 수정
아파치 웹 서버에서는 각 도메인을 특정 포트로 연결하도록 설정하려면, 'httpd.conf' 또는 별도의 가상 호스트 설정 파일에서 'VirtualHost' 지시어를 사용하여 설정할 수 있습니다. 저는 'httpd.conf' 파일을 사용해서 가상 호스팅을 설정하려고 합니다.
아파치 웹 서버의 설정 파일인 httpd.conf 파일을 열어서 편집합니다.
sudo vi /etc/httpd/conf/httpd.conf
가상 호스트 설정
각 도메인을 특정 포트로 연결하는 포트 기반 가상 호스트를 설정합니다.
<VirtualHost *:80>
ServerName www.example.com
ServerAlias www.example.com
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8001/
ProxyPassReverse / http://127.0.0.1:8001/
</VirtualHost>
<VirtualHost *:80>
ServerName www.example2.com
ServerAlias www.example2.com
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8000/
ProxyPassReverse / http://127.0.0.1:8000/
</VirtualHost>
- <VirtualHost *:80>: 포트 80에서 들어오는 모든 요청을 처리할 가상 호스트를 정의합니다. *는 모든 IP 주소에서 들어오는 요청을 의미합니다.
- ServerName: 해당 가상 호스트의 기본 도메인 이름을 지정합니다.
- ServerAlias: 가상 호스트의 추가 도메인 이름을 지정합니다. 이 도메인 이름들도 ServerName과 동일한 호스트로 처리됩니다.
- ProxyRequests Off: 아파치가 프록시 서버로 사용되지 않도록 설정합니다.
- ProxyPreserveHost On: 프록시 요청 시 원래의 호스트 헤더를 유지합니다. 클라이언트가 원래 요청한 호스트 정보를 백엔드 서버에 전달합니다.
- ProxyPass / http://127.0.0.1:8001/: 모든 요청을 로컬의 포트 8001로 전달합니다. http://127.0.0.1:8001/으로 프록시 처리합니다.
- ProxyPassReverse / http://127.0.0.1:8001/: 프록시 응답의 헤더에 포함된 URL을 수정하여 클라이언트가 올바른 URL을 볼 수 있도록 합니다.
아파치 재시작
설정을 완료한 후 아파치 웹 서버를 재시작하여 변경 사항을 반영합니다.
sudo service httpd restart
오류가 난다면 다음 코드를 입력해서 자세히 읽어봅니다.
sudo systemctl status httpd.service
728x90
728x90
'DevOps > Tomcat' 카테고리의 다른 글
[Tomcat] 톰캣 외부 경로 파일 업로드 - 컴도리돌이 (2) | 2024.01.26 |
---|---|
[Tomcat] 톰캣에서 가상 호스트 및 웹 애플리케이션 설정하는 방법 - 컴도리돌이 (0) | 2024.01.26 |