三期总目录链接
目录
一、构建虚拟Web主机
案例1: 构建www.a1.com 和www.a1.com 这种基于域名的虚拟主机
案例2:构建基于地址的虚拟主机 (192.168.1.2 和 192.168.1.12)
案例3: 添加基于端口的虚拟主机 (基于端口80 和端口8080 的虚拟主机)
复习作业
一、构建虚拟Web主机
定义: 在同一台服务器上运行多个Web站点,每个站点不独立占用整个服务器
优点:充分利用服务器硬件资源,降低网站构建及运行成本
三种类型的主机:
1、基于域名的虚拟主机 (网站使用不同的域名,相同的IP地址,需要DNS 服务器支持,最广泛、最普遍的虚拟主机)
2、基于IP地址 (使用不同的域名对应不同的IP,需要服务器配备多个网卡接口,应用不广泛)
3、基于端口的 (不使用域名,使用相同的IP地址不同的TCP端口号,用户访问时必须指定网站的端口号)
案例1: 构建www.a1.com 和www.a1.com 这种基于域名的虚拟主机
步骤:1、搭建DNS 服务,能够解析 www.a2.com 和 www.a2.com (这两个域名所解析出来的地址是一样的,并且都是该网站服务器的地址)
添加两个域名a1.com和a2.com 保存退出
在 /var/named cp named.localhost a1 复制文件
如果后期启动不成功可以试的把这个a1.com后面的点删除 同a2
解析成功
2、为两个网站准备网页文档
mkdir /usr/local/httpd/htdocs/a1 (创建baidu 的网站根目录)
mkdir /usr/local/httpd/htdocs/a2 (创建sina 的网站根目录)
echo "<h1>Welcome To baidu8888</h1>" > /usr/local/httpd/htdocs/a1/index.html (创建a1 的页面)
echo "<h1>Welcome To sina6666</h1>" > /usr/local/httpd/htdocs/a2/index.html (创建a2 的页面)
查看是否写入
3、添加虚拟主机支持
1)、在主配置文件中要添加虚拟主机支持
vim /usr/local/httpd/conf/httpd.conf
找到:
# Virtual hosts
Include conf/extra/httpd-vhosts.conf (将Include 前默认存在的“#” 去掉,表示加载独立的配置文件)
保存退出
2)、修改独立的配置文件
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
修改: <VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com (网站管理员邮箱名称,实验环境可以随便改)
DocumentRoot "/usr/local/httpd/htdocs/a1" (第一个网站的根目录,前面的创建的是什么,这里就写什么)
ServerName www.a1.com (网站的域名)
ServerAlias www.dummy-host.example.com (网站别名,可省略)
ErrorLog "logs/www.a1.com-error_log" (错误日志的名字)
CustomLog "logs/www.a1.com-access_log" common (成功日志的名字)
<Directory "/usr/local/httpd/htdocs">
Require all granted (授权所有用户都能访问网站)
</Directory>
</VirtualHost>
(以上是第一个网站的配置)
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com (第二个网站的管理员邮箱)
DocumentRoot "/usr/local/httpd/htdocs/sina" (第二个网站的根目录)
ServerName www.sina.com (网站的域名)
ErrorLog "logs/www.sina.com-error_log" (错误日志名字)
CustomLog "logs/www.baidu.com-access_log" common (成功日志名字)
<Directory "/usr/local/httpd/htdocs">
Require all granted (目录的授权配置)
</Directory>
</VirtualHost>
保存退出
重启httpd 服务
验证访问(用不同域名访问)
案例2:构建基于地址的虚拟主机 (192.168.1.2 和 192.168.1.12)
1、给网卡添加地址 192.168.1.12
vim /etc/sysconfig/network-scripts/ifcfg-ens33 (打开网卡配置文件)
添加:
IPADDR2=192.168.100.188
PREFIX=24
保存退出
重启网卡服务 : systemctl restart network
2、编译安装好 Apache 服务 (略)
3、准备两个网站的根目录和网页
mkdir /usr/local/httpd/htdocs/a1 (创建baidu 的网站根目录)
mkdir /usr/local/httpd/htdocs/a2 (创建sina 的网站根目录)
echo "<h1>Welcome To a18888</h1>" > /usr/local/httpd/htdocs/a2/index.html (创建a1 的页面)
echo "<h1>Welcome To a26666</h1>" > /usr/local/httpd/htdocs/a1/index.html (创建a2的页面)
4、添加虚拟主机支持
1)、在主配置文件中要添加虚拟主机支持
vim /usr/local/httpd/conf/httpd.conf
找到:
# Virtual hosts
Include conf/extra/httpd-vhosts.conf (将Include 前默认存在的“#” 去掉,表示加载独立的配置文件)
添加:
Listen 192.168.100.108:80
Listen 192.168.100.188:80
保存退出
2)、修改独立的配置文件
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 192.168.1.2:80> (第一个网站对应的IP)
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/httpd/htdocs/a1" (第一个网站对应的根目录)
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "logs/baidu-error_log"
CustomLog "logs/baidu-access_log" common
</VirtualHost>
<VirtualHost 192.168.1.12:80> (第二个网站对应的IP)
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/usr/local/httpd/htdocs/a2" (第二个网站对应的目录)
ServerName dummy-host2.example.com
ErrorLog "logs/sina-error_log"
CustomLog "logs/sina-access_log" common
</VirtualHost>
保存退出
如果已经有域名那就注释掉 加个#
3)、重启Apache 服务
systemctl restart httpd
4)、访问: http://192.168.100.108 和 http://192.168.100.188 进行验证 (成功)
案例3: 添加基于端口的虚拟主机 (基于端口80 和端口8080 的虚拟主机)
1、安装好Apache 服务器 (略)
2、修改主配置文件添加对8080 端口的支持
vim /usr/local/httpd/conf/httpd.conf
Listen 80 (原有的)
Listen 8080 (新加的)
保存退出
3、修改独立的配置文件
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost *:80> (80 端口对应的网站)
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/httpd/htdocs/baidu" (网站根目录)
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "logs/baidu-error_log"
CustomLog "logs/baidu-access_log" common
</VirtualHost>
<VirtualHost *:8080> (8080 端口对应的网站)
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/usr/local/httpd/htdocs/sina" (网站根目录)
ServerName dummy-host2.example.com
ErrorLog "logs/sina-error_log"
CustomLog "logs/sina-access_log" common
</VirtualHost>
保存退出
重启 apache 服务
4、验证: 分别访问 http://192.168.100.108 和 http://192.168.100.108:8080 验证成功
复习作业
1. Require all denied配置语句表示什么含义?
允许所有客户机访问
2. httpd服务器支持哪两种认证方式?其区别是什么?
如果是实现摘要认证需要在编译安装时添加 “--enable-auth-digest" 选项(不是所有的浏览器都支持摘要认证)
基本认证: 是httpd 服务器的基本功能
3. 简述为网站目录设置用户授权的基本过程
1、创建用户认证数据文件
2、添加用户授权配置 (注意: 需要修改主配置文件中的特定区域)
4. httpd主配置文件中Require valid-user配置项的作用是什么?
默认所有的合法的授权账户都可访问
5. 简述httpd服务支持的三种虚拟主机类型及其特点
1、基于域名的虚拟主机 (网站使用不同的域名,相同的IP地址,需要DNS 服务器支持,最广泛、最普遍的虚拟主机)
2、基于IP地址 (使用不同的域名对应不同的IP,需要服务器配备多个网卡接口,应用不广泛)
3、基于端口的 (不使用域名,使用相同的IP地址不同的TCP端口号,用户访问时必须指定网站的端口号)
6. 在httpd服务器若要启用基于域名的虚拟Web主机,通常需要配置哪几个方面的内容?
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
修改<VirtualHost *:80>
DocumentRoot "/usr/local/httpd/htdocs/baidu" (第一个网站的根目录,前面的创建的是什么,这里就写什么)
ServerName www.baidu.com (网站的域名)
ErrorLog "logs/www.baidu.com-error_log" (错误日志的名字)
CustomLog "logs/www.baidu.com-access_log" common (成功日志的名字)
<Directory "/usr/local/httpd/htdocs">
Require all granted (授权所有用户都能访问网站)
</Directory>
</VirtualHost>
7. httpd主配置文件中Include配置项的作用是什么?
尽可能减少对主配置文件的修改,使配置过程更加模块化
8. 简述为构建基于域名的虚拟Web主机的基本过程
1、为虚拟主机提供域名解析dns
2、为虚拟主机准备网页文档
3、添加虚拟主机配置
4、在客户机访问虚拟Web主机
9. 配置基于IP地址的虚拟Web主机时,在每个虚拟Web主机的什么配置项中指定各自域名所对应的IP地址?
vim /usr/local/httpd/conf/httpd.conf
添加:
Listen 192.168.100.108:80
Listen 192.168.100.188:80
10. 配置基于端口的虚拟Web主机时,通过什么配置项来指定多个要监听的TCP端口号?
vim /usr/local/httpd/conf/httpd.conf
Listen 80 (原有的)
Listen 8080 (新加的)