CentOS는 7 가상 호스트 (시험편)를 구성 할

가상 웹 호스트

  • 동일한 물리적 서버에서 여러 웹 사이트를 실행하여, 각 사이트는 별도의 실제 컴퓨터를 차지하지 않습니다

아파치 가상 호스트 유형을 지원

  • 기반 가상 호스팅
  • IP 주소 기반 가상 호스트
  • 가상 호스트 포트를 기반으로

    설정 실험

    기반 가상 호스팅

    
    [root@localhost ~]# yum install bind httpd -y        //在服务器上安装DNS与HTTP服务
    [root@localhost ~]# cd /etc/                         //进入etc目录
    [root@localhost etc]# vim named.conf                 //进入编辑DNS服务主配置文件
    ...//省略部分内容...
    options {
        listen-on port 53 { any; };                    //将监听IP地址更改为any,监听所有地址
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };                      //主机名更改为any,允许所有主机通过解析
    ...//省略部分内容...
    :wq                                                        //保存退出
    [root@localhost etc]# vim named.rfc1912.zones        //进入编辑区域配置文件
    ...//省略部分内容...
    zone "kgc.com" IN {                                  //更改域名
        type master;
        file "kgc.com.zone";                         //更改数据文件名称
        allow-update { none; };
    };

영역 "aaa.com을"의 {도메인 변경 //
유형 마스터;
"aaa.com.zone를"파일, 데이터 파일 이름 변경 //
}; 허용-업데이트 {없음
}
... // 생략 부분 .. .
[루트 @ localhost를 등] #에서 cd / var에 / 이름 / // 입력 영역 데이터 파일 저장 디렉토리
[루트 @ 로컬 호스트 이름] #은 cp -p named.localhost kgc.com.zone // 영역 데이터 파일 서식 복사
[루트 @ 로컬 호스트 이름] #의 정력 kgc.com.zone // 입력 편집 템플릿
의 TTL 1D $
@ IN이 SOA를 rname.invalid @ (.
0; 직렬
1D, 새로 고침
IH, 재시도
1W; 만료
3H를) 최소
NS @
127.0.0.1
WWW 192.168.144.133 // 마지막 줄을 삭제,이 라인 변경
: WQ // 저장하고 종료
[루트 @ 로컬 호스트라는] #의 CP는 -p kgc.com.zone aaa.com.zone //이 데이터 파일은 변경 복사 이름 aaa.com.zone는, 내용을 변경할 필요가 없습니다
#이 systemctl [루트 @의 이름은 로컬 호스트] //라는 이름의 시작 DNS 서비스 시작
#의 systemctl의 [루트는 @ 로컬 호스트 이름] 정지 firewalld.service가 // 방화벽 해제
[루트 @ 로컬 호스트 이름] # 위해 setenforce에게 0 // 닫기 강화 된 보안 기능을

[루트 @ localhost를 html로] # cd를 사용하여 / etc / httpd / conf / // HTTP 서비스 구성 파일 디렉토리 입력
[루트 @ 로컬 호스트의 conf] #에서 mkdir을 // 별도의 폴더 만들기
[루트 @ 로컬 호스트의 conf] # 1! // 보기 카탈로그
추가를 매직을 httpd.conf
[추가 루트 @ localhost를] // vhost.conf subprofile 파일을 편집 #의 빔
<가상 호스트 * : 80>
DocumentRoot의 "/ var에 / WWW는 / HTML / AAA /"
서버 이름 www.aaa.com
ErrorLog에 "로그 / WWW .aaa.com.error_log "
때 CustomLog"로그 / www.aaa.com.access_log "일반적인
<디렉토리"는 / var / WWW / HTML ">
모든 부여 편집을 요구 가상 호스트 구성 항목 //
</ 디렉토리>
</ VirtualHost의>

<가상 호스트 * : 80>
DocumentRoot의 "/ var에 / WWW는 / HTML / KGC /"
서버 이름 www.kgc.com
ErrorLog에 "로그 / www.kgc.com.error_log"
때 CustomLog "로그 / www.kgc.com.access_log"일반적인
< 디렉토리 "/ var에 /를 WWW / HTML">
모든 부여 필요
</ 디렉토리>
</ VirtualHost의>
~
: // WQ 저장하고 종료
[루트 @ localhost를 추가] # cd를 의 / var / www / html / // 웹 사이트에 HTTP 서비스
[루트 @ localhost를 html로] #에서 mkdir의 단 KGC // 디렉토리 파일을 생성
[루트 @ localhost를 html로] #에서 cd AAA / // 디렉토리 입력
[루트 @ 로컬 호스트의 AAA] #의 정력 // index.html을을 기본 홈 페이지를 편집
<H1은>이다 AAA 웹 </ H1> //이 내용을 쓰기
~
: // WQ 저장하고 종료
[루트 @ 로컬 호스트의 AAA] # 1! // 보기 디렉토리의
index.html을
[루트 @ 로컬 호스트 AAA] # cd를 ..이전 디렉토리 / KGC는 / // 반환 및 KGC를 입력
[루트는 로컬 호스트 KGC @] # 정력의 index.html을 // 기본 페이지를 편집
<H1>이이 KGC 웹 < / H1> //이 편집
~
// WQ 저장하고 종료 :
# 1! [로컬 호스트 KGC @ 루트] // 보기 카탈로그
index.html을
주요 설정 파일을 수정에 [루트 @ localhost를 KGC] # 정력이 /etc/httpd/conf/httpd.conf 파일 // HTTP 서비스
... // ... 부분을 생략

모든 바운드 IP 주소에 glomming에서 아파치를 방지 할 수 있습니다.

#
192.168.144.137:80 // 열기 IPv4의 주소를 듣고 경청하고, 기계로의 IP 주소 변경
주소를 듣고 #Listen 80 // 폐쇄의 IPv6를
... // 부분은 생략 ...

부하 설정은 "/etc/httpd/conf.d"디렉토리에있는 파일 (있는 경우).

Conf.d IncludeOptional / 의 .conf
포함] conf의 / 추가 / vhost.conf // 구성 파일의 마지막 줄에서 하위 디렉토리 항목을 포함 할 추가
: WQ // 저장하고 종료
[로컬 호스트 KGC @ 루트] # systemctl 아파치 // 시작 HTTP 서비스가 켜져
[루트 @localhost KGC] #에서 netstat -ntap | 그렙 (80) // 포트가 열려 있는지 확인 80
tcp6 0 0 ::: 80 :::
LISTEN 2450 / 아파치


**打开一台win10客户机,更改DNS服务器地址,打开网页,测试基于不同域名构建虚拟主机是否成功**

![](https://s1.51cto.com/images/blog/201910/30/8d15701bb483d3506fa530a9c2b68584.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)![](https://s1.51cto.com/images/blog/201910/30/6e3724159dcbc19ba4c4c3ccb223fdb4.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)![](https://s1.51cto.com/images/blog/201910/30/ccc10004f7f949d910fc0d6eb01f5826.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

### 基于端口建立虚拟主机

**此处实验就直接在上面的实验中更改配置,不重新操作**

/etc/httpd/conf/extra/vhost.conf # 정력 [루트는 @ 로컬 호스트 이름]
... //省略部分内容...
: <80는 VirtualHost *>
을 DocumentRoot "의 / var / www / html / 한국 인삼 공사 /"
서버 이름 www.kgc.com
오류 로그의 "로그 / www.kgc.com.error_log"
때 CustomLog "로그 / www.kgc.com.access_log"일반적인
<디렉토리 "는 / var / www /에서 HTML을">
모든 부여 필요
</ 디렉토리>
</ 가상 호스트>

<가상 호스트 * : 8080>
DocumentRoot의 "의 / var / www / html / kgc02 /"
서버 이름 www.kgc.com
ErrorLog에 "로그 / www.kgc02.com.error_log"
때 CustomLog "로그 / www.kgc02.com.access_log"일반적인
< 디렉토리 "는 / var / www /에서 html로 "> //이 위의 구성 파일 항목을 복사하고 수신 대기 포트 8080 및 사이트 디렉토리를 변경, 로그 파일 이름은 kgc02로 변경됩니다
(가) 모든 허가 필요
</ 디렉토리>
</ VirtualHost 항목>을
: WQ // 저장하고 종료
[루트 @ 로컬 호스트 이름] #에서 cd / var에 /를 WWW / HTML /
[루트 @ 로컬 호스트의 HTML] #에서 mkdir kgc02
[루트 @ 로컬 호스트의 HTML] # cd를 kgc02 /
[루트 @ localhost를 kgc02] # 정력 index.html을
< 의 H1은>는 kgc02>의 웹이 </ H1
~
: WQ
[루트 @ 로컬 호스트 kgc02] # 빔 /etc/httpd/conf/httpd.conf 파일
... // ... 생략 부

모든 바운드 IP 주소에 glomming에서 아파치를 방지 할 수 있습니다.

#
192.168.144.137:80를 들어
192.168.144.137:8080 들어
#Listen 80
... // 부분은 생략 ...
WQ :
[루트 @ 로컬 호스트의 kgc02] # systemctl 다시 시작 아파치를


**在win10客户端验证基于端口的虚拟主机配置**

![](https://s1.51cto.com/images/blog/201910/30/440fb558e72104a84c2409ba8232396b.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)![](https://s1.51cto.com/images/blog/201910/30/7e3e16de5bb33a620b49e80bda76fa82.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

### 基于IP地址建立虚拟主机

**在这里先给Linux服务器虚拟机添加一张网卡,获取另一个IP地址**

![](https://s1.51cto.com/images/blog/201910/30/502e78433b4b3c63a1d7bcda851892cf.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

**在虚拟机中获取IP地址**

[루트 @ localhost를 ~] # ifconfig를 //查看网卡信息
ens33 : 플래그 = 4163 <UP, 방송, RUNNING, MULTICAST> MTU 1500
INET 192.168.144.137 넷 마스크 255.255.255.0 방송 192.168.144.255
INET6 FE80 :: a85a : C203 : E2E : 3f3c가 prefixlen 64은 ScopeId가 0x20 <링크>
INET6 FE80 :: ad78 : 663f : 1f02 : 22e4 prefixlen 64은 ScopeId가 0x20 <링크>
에테르 00 : 0C : 29 : 72 : 65 : 1000 (이더넷) txqueuelen CB
RX 패킷 14,117 바이트 10,290,025을 ( 9.8은 MIB)
RX 에러 0 0 0 초과 프레임 0 삭제
TX 패킷 6,337 749.7 킬로바이트) 767,788 바이트 (
0 0 0 초과 캐리어 삭제 TX 에러 0 0 충돌

ens36 : 플래그 = 4163 <위쪽, 방송, 실행, 멀티 캐스트> 1500 개 MTU
INET 넷 마스크 255.255.255.0 192.168.144.143 192.168.144.255 // 방송 얻기 IP 주소
FE80 :: D65E INET6 : 47b1 : 916D : de6c 64 경우 ScopeId가 0x20 <prefixlen 링크>
에테르 00 : 0C : 29 : 72 : 65 : txqueuelen 1,000 (이더넷)의 D5
수신 기기 패킷 115 바이트 20,495 (20.0 킬로바이트)는
수신 기기 에러 0 0 프레임 0 0 초과 손실 된
송신기 (TX)는 79 바이트 17,837 (17.4 킬로바이트) 패킷
투하 TX 에러 0 캐리어 초과 0 0 충돌 0 0
... //의 ... 생략 부분
[루트 @ localhost를 ~] 편집 HTTP // 하위 서비스 구성 파일 입력 /etc/httpd/conf/extra/vhost.conf # 정력
<VirtualHost의 192.168 .144.137 : 고정 IP 주소 80> // 변화
"의 / var /를 WWW / HTML / AAA /"DocumentRoot에
서버 이름 www.aaa.com
오류 로그의 "로그 / www.aaa.com.error_log"
때 CustomLog "로그 / www.aaa.com.access_log"일반적인
<디렉토리 "는 / var / www /에서 html로">
필요로하는 모든 허용
</ 디렉토리>
</ VirtualHost의>

<VirtualHost의 192.168.144.143:80> // IP 주소, 구성 위의 줄을 복사 변경
을 DocumentRoot "/ var에 / www /에서 HTML / aaa02 /"// 변경 사이트 파일
서버 이름 www.naaa.com 도메인 이름 변경 //
오류 로그의 "로그 / WWW를 .aaa02.com.error_log "오류 로그 파일 이름 변경 //
때 CustomLog를"로그 / www.aaa02.com.access_log "로그 파일 이름 변경 // 일반적인
</ var에 /를 WWW / HTML은"디렉토리> "
요구]를 모두 허용
</ 디렉토리 >
</ VirtualHost의>
: // 저장하고 WQ 종료
[루트 @ localhost를 ~] #의 정력 /etc/named.rfc1912.zones // 편집 DNS 영역 구성 파일
... // ... 생략 일부
지역 "aaa.com "{은 IN
, 유형 마스터
aaa.com.zone를"파일이 없습니다 ";
허용-업데이트를 {없음};
};

존 "naaa.com"{IN을
타입 마스터; // 새로운 영역 프로파일 추가
; 파일 "naaa.com.zone"
허용-업데이트 {없음을;};
};
... // ... 생략 부분
: WQ // 저장하고 종료
[루트 @ localhost를 ~] # cd를 / var에 / 이름 / // 입력 영역 데이터 파일 저장 디렉토리
[루트는 @ 로컬 호스트 이름] #은 cp -p aaa.com.zone naaa.com.zone // 복사 영역 데이터 파일
[루트는 @ 로컬 호스트 이름] #의 정력 naaa.com.zone // 새 편집 영역 데이터 파일을 입력
$의 TTL 1D
@에서이 SOA를 rname.invalid @ (.
0; 직렬
1D, 새로 고침
IH, 재시도
1W; 만료
3H) ; 최소
NS @
127.0.0.1
에서 WWW가에서 192.168.144.143 IP 주소를 변경 //
~
: // WQ 저장하고 종료
[루트 @ 로컬 호스트 이름] # cd를 의 / var / www / html / // HTTP 입력 서비스 사이트
[루트 @ 로컬 호스트 HTML] #에서 mkdir의 aaa02 // 새 사이트 디렉토리를 생성
[루트 @ localhost를 html로] #에서 cd aaa02 / // 디렉토리 입력
[루트 @ 로컬 호스트의 aaa02] #의 정력 // index.html을을 기본 홈 페이지 파일을 편집은
<H1>이 143 aaa02 웹입니다 </ H1> // 편집 웹 페이지 내용
: WQ 저장하고 // 종료
[루트 @ 로컬 호스트의 aaa02] # 정력 /etc/httpd/conf/httpd.conf 파일 // HTTP 서비스 마스터 구성 파일을 편집
... // 부분 생략 ...

모든 바운드 IP 주소에 glomming에서 아파치를 방지 할 수 있습니다.

#
192.168.144.137:80을 청취
하여 새 IP 주소 모니터링 192.168.144.143:80 // 편집 들어
#Listen (80)
... // 부분은 ... 생략
WQ // 저장하고 종료 :
[루트 @ 로컬 호스트 aaa02] # 개의 systemctl의 재시작 아파치 // HTTP를 다시 시작 서비스
[루트 @ 로컬 호스트의 aaa02] # 개의 systemctl의 // 이름을 다시 시작 DNS 서비스를 다시 시작



**在win10客户机中验证基于IP地址建立的虚拟主机**

![](https://s1.51cto.com/images/blog/201910/30/982c238da37556a1d40fa918e6de92ea.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)![](https://s1.51cto.com/images/blog/201910/30/2b052b5d4498e8249cd8763c68acff67.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

### 配置成功

추천

출처blog.51cto.com/14473285/2446637