[Apache2] 가상호스트 설정. 여러 도메인 운영하기. 도메인과 포트
하나의 서버에서 2개의 도메인으로 서비스를 운영하고 싶어 가상 호스트를 설정하기로 했다.
처음에는 동일 도메인에서 다른 포트로 호스트를 설정하려고 했으나, 사용하고 있는 구름ide 컨테이너 설정을 살펴보니
하나의 컨테이너에서 도메인을 추가할 수 있는 기능을 발견!
도메인을 하나 더 추가해서 운영해보기로 했다.
1. 각각의 도메인의 Document Root 설정
A 도메인 : /workspace/A (기존 서비스 경로)
B 도메인 : /workspace/B (추가한 서비스 경로)
Document Root를 결정하였으면, 테스트 파일을 생성해놓는다.
/workspace/A/index.html
/workspace/B/index.html
2. 도메인 생성하기
B 도메인과 포트 설정을 추가한다.
B 도메인은 8080 포트를 사용하기로 결정.
A 도메인은 기존에 사용하고 있던 도메인으로 기존 설정 유지.
URL | PORT | |
A 도메인 | www.A.co.kr | 80 |
B 도메인 | www.B.co.kr | 8080 |
3. 서버에 가상 호스트 설정하기
가상 호스트를 설정하기 전 apache2 설정 디렉토리들을 먼저 살펴보자.
위치 | 설명 |
/etc/apache2/apache2.conf | 서버 설정과 관련 파일 |
/etc/apache2/ports.conf | 서버의 포트 설정 관련 파일 |
/etc/apache2/sites-available/000-default.conf | 웹서비스의 경로 및 권한 등의 설정 파일. 디폴트 설정값이 000-default.conf 파일이다. 웹서비스를 추가할 경우 *.conf로 명명된 설정된 파일을 생성해서 사용할 수 있다. |
/etc/apache2/sites-enable | sites-available에 설정된 파일들 중 활성화된 설정을 심볼릭 링크로 연결된 파일들이 존재 a2ensite/a2dissite 등의 명령어를 통해 수정된다. |
/etc/apache2/mods-available | 모드 설정 파일들이 존재 |
/etc/apache2/mods-enable | 활성화된 설정을 심볼릭 링크로 연결된 파일들이 존재 a2enmod/a2dismod 등의 명령어를 통해 수정된다. |
B 도메인을 추가하였으니, 추가한 웹 서비스의 가상 호스트를 설정한다.
/etc/apache2/sites-available 디렉토리에서 B 도메인의 설정 파일 b-default.conf 생성
<VirtualHost *:8080>
ServerName www.B.co.kr
DocumentRoot /workspace/B
<Directory /workspace/B>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
그동안 사용하지 않았던 8080 포트를 열어줘야 한다.
/etc/apache2/ports.conf 파일에 8080 포트를 추가
Listen 80
Listen 8080
설정 값을 수정하였지만 아직 서버가 인식 할 수 있는 상태가 아니므로 심링크를 추가해야 한다.
a2ensite 명령어로 심링크 추가
#a2ensite b-default.conf.conf
서버를 재실행 한다.
#service apache2 restart
추가한 B 도메인으로 접속 하면 /workspace/B/index.html 파일이 실행되는지 확인