Linux Apache - 가상호스트설정(Apache virtual host) > server

본문 바로가기

server

Linux Apache - 가상호스트설정(Apache virtual host)

페이지 정보

작성자 서방님 댓글 0건 조회 311회 작성일 19-03-29 14:53

본문

■  Apache - 가상호스트(httpd.conf) 설정

1. httpd.conf 파일을 열어 추가 수정

[root@localhost ~]# vi /etc/httpd/conf/httpd.conf

.

. (맨 아래라인에 추가 / 이미 있다면 # 주석제거)


356 NameVirtualHost *:80 ( 추가 / Apache 2.4.x 이상이므로 해당 버전에서는 추가 안해도 됩니다. ) 357 358 include /etc/httpd/conf/vhost.conf (추가)

359 360 <Directory "/home"> (추가) 361 AllowOverride None 362 Require all granted 363 </Directory>


:wq (저장)

[참고]


■ NameVirtualHost *:80

이름 기반의 가상호스트(도메인별) 사용하겠다는 뜻입니다.


추가내용(2017-02-27)

Apache 2.4.x 이상버전에서 [NameVirtualHost *:80] 옵션을 넣을시 아래와 같은 문구가 발생하는데요.

AH00548: NameVirtualHost has no effect and will be removed in the next release /etc/httpd/conf/httpd.conf:356

문제는 없습니다. 다만 이상버전에서는 사용선언을 안해도 적용되게끔 변경이 된건데... 어쩐지 처음 httpd.conf 설정파일에 없었던 이유가 있었네요.

다음 릴리즈에서는 해당 오류 메세지를 없앤다고하니 무시하셔도 되는 로그 입니다. 신경이 쓰인다면 지우는것을 권고합니다.


Apache 2.4.x 이하버전에서는 꼭  해주시기 바랍니다.


■ include /etc/httpd/conf/vhost.conf

httpd.conf 안에 바로 설정하여도 되지만 여러개의 도메인을 등록하여 관리를 하실려고 하신다면 별도의 파일을 만들어 관리하시는게 좋습니다.

(Yum으로 설치한 아파치는 샘플파일이 없기때문에 직접 생성하여 등록을 진행해야 합니다.)

Source 직접 설치하였다면 일반적인 경로는 ../apache/conf/extra/httpd-vhosts.conf 혹은 vhost.conf 샘플파일이 있습니다.


■ <Directory "경로" , Require all granted> 추가

/home 경로에 도메인을 소스 업로드 및 홈페이지 테스트 불러올수 있게 디렉토리 접근 권한을 허용해야 합니다. 

만약 하지 않으면 다음과 같이 페이지 접근 할 수 없다는 에러페이지가 뜨실겁니다.

[Thu Feb 23 15:48:06.717299 2017] [authz_core:error] [pid 4172] [client 192.168.223.1:55533] AH01630: client denied by server configuration


 Apache 2.4 버전 이상일 경우

 Apache 2.4 버전 이하일 경우

 <Directory "/디렉토리 경로">

   AllowOverride None

   Require all granted

</Directory>

 <Directory "/디렉토리 경로">

   AllowOverride None

   Order allow,deny

   Allow from all

</Directory>


와 같이 셋팅하시면 됩니다.


2. vhost.conf 파일 생성 및 설정

[root@localhost ~]# vi /etc/httpd/conf/vhost.conf


############### webtest11.com Start ############### <VirtualHost *:80> # ServerAdmin webmaster@dummy-host.example.com DocumentRoot /home/test ServerName webtest11.com ServerAlias www.webtest11.com # ErrorLog logs/dummy-host.example.com-error_log # CustomLog logs/dummy-host.example.com-access_log common </VirtualHost> ############### webtest11.com End ################# ############### webtest22.com Start ############### <VirtualHost *:80> # ServerAdmin webmaster@dummy-host.example.com DocumentRoot /home/test2 ServerName webtest22.com ServerAlias www.webtest22.com # ErrorLog logs/dummy-host.example.com-error_log # CustomLog logs/dummy-host.example.com-access_log common </VirtualHost> ############### webtest11.com End #################


:wq (저장)

[참고]


■ 잘모르겠다면 그대로 전체 복사하여 저장 및 진행하시면 됩니다.


■ 각 설정 의미 (아래 호스트하나가 한 셋트입니다 / # 주석처리는 선택사항입니다, 없어도 됩니다. )

<VirtualHost *:80>

  #    ServerAdmin webmaster@dummy-host.example.com  ← 서버관리자(임의로 설정)

        DocumentRoot /home/test                       ← 홈디렉토리

        ServerName webtest11.com                       ← 연결할도메인(DNS설정이랑 같게해야함)

        ServerAlias www.webtest11.com                ← 연결할도메인(다른 도메인, DNS설정이랑 같게해야함)

  #    ErrorLog logs/dummy-host.example.com-error_log                     ← 에러로그(선택사항)

  #    CustomLog logs/dummy-host.example.com-access_log common   ← 접속로그(선택사항)

 </VirtualHost>


3. 홈페이지 경로(DocumentRoot) 및 테스트 페이지 생성

[root@localhost ~]# mkdir /home/test (DocumentRoot 경로 생성) [root@localhost ~]# mkdir /home/test2 (DocumentRoot 경로 생성)

[root@localhost ~]# vi /home/test/index.html (test할 페이지 생성)

webtest11.com Test page! <br/> If you see this screen, it is good setting!


:wq (저장)

[root@localhost ~]# vi /home/test2/index.html (test2할 페이지 생성)

webtest22.com Test page! <br/> If you see this screen, it is good setting!


:wq (저장)

[root@localhost ~]# chmod -R 755 test (읽기 쓰기 권한 부여)

[root@localhost ~]# chmod -R 755 test2 (읽기 쓰기 권한 부여)


[root@localhost ~]# ls -al /home (권한 변경 및 생성 확인)

.

.

drwxr-xr-x (권한 확인) 2 root root 4096 2??23 16:36 test drwxr-xr-x (권한 확인) 2 root root 4096 2??23 16:38 test2



4. 아파치(Apache) 재시작 적용

[root@localhost ~]# systemctl restart httpd

[root@localhost ~]# ps -ef | grep httpd

root 4517 1 0 16:45 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 4519 4517 0 16:45 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 4520 4517 0 16:45 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 4521 4517 0 16:45 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 4522 4517 0 16:45 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 4523 4517 0 16:45 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND root 4525 2195 0 16:45 pts/0 00:00:00 grep --color=auto httpd

■  실전테스트(웹 페이지 연결)

원래는 홈페이지를 연결하기위해서는 실제 도메인을 네임서버에 A레코드를 연결해야하지만 현재는 도메인이 존재하지 않기때문에 본인PC 에서 강제로 호스트를 지정하여 홈페이지를 연결하는 방법을 알려드리도록 하겠습니다. 해당 방법을 알고 있다면 굳이 호스팅업체에 맡길필요없이 홈페이지 소스를 업로드 하여 페이지가 정상적으로 뜨는지를 확인 및 테스트할수 있습니다.


1. 개인PC (hosts 파일 수정)

경로 : C:\Windows\System32\drivers\etc

(경로는 Windows 7, Windows 8.1, Windows 10 버전 동일합니다.)


271DBC3458AE987206


[다음] 


220D523458AE987330


[만약 저장시 권한이 없다고 뜬다면 백신프로그램에 의해 보호 받고 있는지 확인 OFF 진행]


262C043458AE98732E



2. 연결 테스트


명령 프롬프트를 통해 PING 테스트를 확인합니다.


2463873658AE9F991B


최종적으로 실제 브라우저를 통해 홈페이지가 정상적으로 연결이 되는지 확인해 봅니다.


2549183658AEA11325


위와같이 페이지가 보인다면 정상적으로 가상 호스트 설정이 완료가 되었습니다.

※ 이는 자기 PC에서만 확인 가능한방법입니다. [혹은 공유기가 연결된 같은 사설(내부)네트워크]


렇게 가상호스트설정을 적절하게 잘 이용한다면 한서버에 여러개의 홈페이지를 셋팅하여 이용할수 있으며 호스팅 비용을 절약할수 있는 효과를 볼수 있습니다. 그리고 한서버에 업로드를 하기때문에 관리차원에서도 편합니다.

댓글목록

등록된 댓글이 없습니다.

Total 349건 1 페이지
게시물 검색

회원로그인

접속자집계

오늘
56
어제
152
최대
592
전체
76,944

그누보드5
Copyright © 서방님.kr All rights reserved.