linux
[LINUX] Apache VirtualHost로 도메인 여러개 서비스 설정 방법
광돌ol
2023. 5. 17. 17:10
728x90
Virtual Host(가상 호스트)는 하나의 서버에서 여러 웹사이트를 서비스함을 의미합니다.
예시로 기존 서버를 www.aaa.com을 운영하고 있는데 서비스가 다른 www.bbb.com을 웹서버로 추가하여 운영을 하고자 한다 했을 경우
서버는 한대이고 , IP도 하나입니다.
두 도메인은 같은 ip로 설정되어 있는데, 각각의 도메인으로 접속을 했을 때는 서로 다른 화면을 보여주려고 한다면 어떻게 해야할까요?
이럴 경우 사용하는 것이 Virtual Host입니다.
예시)
실습 환경 CentOs 7
방화벽 - off
Apache/2.4.6
먼저 apache httpd 설정 경로로 이동합니다(apache는 nginx와 동일한 역할)
경로 : /etc/httpd/conf.d/

특정 (파일명).conf 접속 또는 생성
기본 VIrtualHost 생성
<VirtualHost *:80>
ServerName www.aaa.com ## 도메인 이름
ServerAlias aaa.com ## 도메인 가명
JKMount /* utf8
DocumentRoot "/" ## 루트 디렉토리 경로
<Directory (루트 디렉토리 경로)>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
RewriteEngine on
RewriteCond %{SERVER_NAME} = url(도메인) [OR]
RewriteCond %{SERVER_NAME} = url(도메인)
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URL} [END,NE,R=permanent]
CustomLog ## 로그 생성 위치
ErrorLog ## 에러 로그 생성 위치
</VirtualHost>
<VirtualHost *:443>
ServerName www.aaa.com ## 도메인 이름
ServerAlias aaa.com ## 도메인 가명
JKMount /* utf8
DocumentRoot "/" ## 루트 디렉토리 경로
<Directory (루트 디렉토리 경로)>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
LogLevel warn
SSLEngine on
SSLProtocol All -SSLv2
SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP:!kEDH:!aNULL
SSLCertificateFile ~
SSLCertificatekeyFile ~
SSLCertificateChainFile ~
<Files ~ "\.(cgi | shtml | |phtml | php3?$">
SSLOptions +StdEnvVars
</Files>
CustomLog ## 로그 생성 위치
ErrorLog ## 에러 로그 생성 위치
</VirtualHost>
<VirtualHost *80>
ServerName www.aaa.com ## 도메인 이름
ServerAlias aaa.com ## 도메인 가명
Redirect ## 이동할 도메인
</VirtualHost>
반응형