手把手教你,嘴对嘴传达----Apache虚拟主机配置与应用

时间:2022-07-24
本文章向大家介绍手把手教你,嘴对嘴传达----Apache虚拟主机配置与应用,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

一、Apache虚拟主机

1、虚拟web主机概述

在同一台服务器中运行多个web站点,其中每一个站点并不独立占用一台真正的计算机 通过虚拟web主机可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本 使用httpd可以非常方便的构建虚拟主机服务器,只需要运行一个httpd服务就能够同时支撑大量的web站点

2、httpd支持的虚拟主机类型

基于域名 为每个虚拟主机使用不同的域名,但是其对应的IP地址使相同的 域名不同–IP相同,端口相同 基于域名是最为普遍的虚拟web主机类型 基于IP地址 为每个虚拟主机使用不同的域名,且各自对应的IP地址也不相同 这种方式需要为服务器配备多个网络接口,因此应用不是很广泛 IP不同,端口相同 基于端口 这种方式并不使用域名,IP地址来区分不同的站点内容,而是使用不同的TCP端口号 因此用户在浏览不同的虚拟站点时需要同时制定端口号才能访问 IP相同,端口不同

3、添加虚拟主机配置格式

[root@localhost ~]# vim /etc/http/conf/xxx/vhost.conf
 1 <VirtualHost *:80>	'//针对本服务器所有IP地址'
  2   DocumentRoot "/var/www/html/xxx"	'//指定站点目录'
  3   ServerName www.xxx.com	'//指定域名'
  4   Errorlog "logs/www.xxx.com.error_log"	'//指定错误日志路径'
  5   Customlog "logs/www.xxx.com.custom_log" common	'//指定访问日志路径'
  6   <Directory> "/var/www/html">
  7         Require all granted		'//设置网页允许所有主机访问,也可以通过denied设置拒绝访问'
  8   </Directory>
  9 </VirtualHost>

4、生产环境中虚拟主机概述

生产环境中,服务器不止两台

每台服务器都有虚拟主机对应各自的网站

通过调度服务器调取服务器中的网站资源

二、构建虚拟主机–基于域名实例演示

VMware软件

一台Windows虚拟机,IP地址为192.168.110.3

一台centos7虚拟机,IP地址为192.168.110.132

centos7安装bind和httpd服务

实验目的 在Windows虚拟机浏览器中访问这两个域名时,分别显示不同的内容

1、下载需要的软件包

[root@localhost ~]# yum install bind httpd -y

2、为虚拟主机提供域名解析

关闭防火墙,核心防护,编辑主配置文件

[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /etc/named.conf 
...省略内容
    options {
        listen-on port 53 { any; };	'//修改为any'
        listen-on-v6 port 53 { ::1; };
        ...省略内容
        allow-query     { any; };	'//修改为any'
...省略内容

编辑区域配置文件

[root@localhost ~]# vim /etc/named.rfc1912.zones 
'//添加一下两端内容'
    ...省略内容
zone "shang.com" IN {
        type master;
        file "shang.com.zone";
        allow-update { none; };
};

zone "zhen.com" IN {
        type master;
        file "zhen.com.zone";
        allow-update { none; };
};
...省略内容

编辑区域数据文件

[root@localhost ~]# cd /var/named/
[root@localhost named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@localhost named]# cp -p named.localhost shang.com.zone
[root@localhost named]# vim shang.com.zone 
...省略内容
    '//末尾添加内容'
www IN  A       192.168.110.132
[root@localhost named]# cp -p shang.com.zone zhen.com.zone

开启DNS域名服务

[root@localhost named]# systemctl start named

3、打开win10 看一下解析是否成功

4、 配置httpd服务

创建站点,并添加虚拟主机配置
[root@localhost named]# cd /etc/httpd/conf
[root@localhost conf]# ls
httpd.conf  magic
[root@localhost conf]# mkdir qwer
[root@localhost conf]# ls
qwer  httpd.conf  magic
[root@localhost conf]# cd qwer
[root@localhost baobao]# ls
[root@localhost baobao]# vim vhost.conf
 1 <VirtualHost *:80>
  2   DocumentRoot "/var/www/html/shang"
  3   ServerName www.shang.com
  4   Errorlog "logs/www.shang.com.error_log"
  5   Customlog "logs/www.shang.com.custom_log" common
  6   <Directory> "/var/www/html">
  7         Require all granted
  8   </Directory>
  9 </VirtualHost>
 10 
 11 <VirtualHost *:80>
 12   DocumentRoot "/var/www/html/zhen"
 13   ServerName www.zhen.com
 14   Errorlog "logs/www.zhen.com.error_log"
 15   Customlog "logs/www.zhen.com.custom_log" common
 16   <Directory> "/var/www/html">
 17         Require all granted
 18   </Directory>
 19 </VirtualHost>

编辑虚拟机网页文档

[root@localhost baobao]# cd /var/www/html/
[root@localhost html]# ls
[root@localhost html]# mkdir shang zhen
[root@localhost html]# ls
shang  zhen
[root@localhost html]# cd shang
[root@localhost html]# vim index.html 
<h1>this is shang web</h1>
同理  zhen的网页是<h1>this is zhen web</h1>

编辑httpd主配置文件,添加虚拟主机站点

[root@localhost html]# vim /etc/httpd/conf/httpd.conf 
'//找到此行'
IncludeOptional conf.d/*.conf
Include conf/qwer/vhost.conf	'//添加此行内容'

开启httpd服务,并测试 [root@localhost html]# systemctl start httpd

三、构建虚拟主机–基于端口实例演示

实例目的 在浏览器中访问不同端口,显示不同内容

1、配置httpd服务

配置虚拟主机配置
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# systemctl start httpd
[root@localhost html]# cd /etc/httpd/conf
[root@localhost conf]# ls
qwer httpd.conf  magic
[root@localhost conf]# cd qwer
[root@localhost baobao]# ls
vhost.conf
[root@localhost baobao]# vim vhost.conf 
    '//在第二个主机配置后添加80'
<VirtualHost *:8080>	'//多写一个80'

2、设置监听地址

[root@localhost baobao]# vim /etc/httpd/conf/httpd.conf 
Listen 192.168.197.141:80
Listen 192.168.197.141:8080		'//找到监听地址,开启IPv4监听,设置监听地址,添加一个8080端口的监听地址'
#Listen 80	'//关闭IPv6监听'

3、重启服务

[root@localhost baobao]# systemctl restart httpd.service

4、测试

四、构建虚拟主机–基于不同IP实例演示

1、环境准备

继承以上实验环境 centos虚拟主机新添加一张网卡 编辑另一个网卡为192.168.110.200

2、实例目的

在浏览器访问两个IP时,分别显示不同的内容

3、配置httpd服务

虚拟主机配置

[root@localhost sahng]# vim vhost.conf 
<VirtualHost 192.168.110.132:80>	'//将*修改为第一张网卡IP地址'
<VirtualHost 192.168.110.200:80>	'//将*修改为第二张网卡IP地址'
    '//将他们的域名都注释掉'

设置监听地址

[root@localhost shang]# vim /etc/httpd/conf/httpd.conf 
...省略内容
Listen 192.168.110.132:80
Listen 192.168.110.200:80
#Listen 80
...省略内容

重启服务,验证

[root@localhost shang]# systemctl restart httpd

4、验证