第四周
Apache虚拟主机
实现在一台云服务器上,搭建多个独立域名的独立网站
任务1:域名解析(DNS服务)
DNS服务器的安装于配置
DNS服务器的安装
yum install bind
DNS服务器的配置
vi /etc/named.conf
options {
listen-on port 53 { 127.0.0.1; }; #监听服务器IP
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";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query { any; }; #允许所有主机查询
DNS区域文件的配置
vi /etc/named.rfc1912.zones
zone "11-hcz.cn" IN { #"域名"
type master;
file "11-hcz.cn.zone"; #对应的配置文件名
allow-update { none; };
};
DNS区域文件的配置
cd /var/named
cp -p named.empty 11-hcz.cn.zone
vi 11-hcz.cn.zone
$TTL 3H
@ IN SOA @ hczyyds.qq.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.11.100
AAAA ::1
www IN A 192.168.11.100
启动DNS服务器
systemctl enable --now named.service
客户端测试
客户机配置DNS服务器
tips:如果访问失败开放注意防火墙端口
ping www.11-hcz.cn
DNS区域的管理
区域的类别
正向查询域
- 域名 IP
反向查询域
- IP 域名
区域文件
/var/named/*.zone
正向查询域中记录的管理
- 主机记录 A
- 别名记录 CNAME
- 邮件交换纪录 MX
反向查询的管理
创建反向查询域
- 名称: 11.168.192.in-addr.arpa.dns
DNS服务器的管理
设置转发器
- 功能
指定根于服务器
/var/named/named.ca
任务2:web服务(基于主机头的虚拟主机)
实现Web网站
实现默认站点
上传主页文件
echo TestPage > /var/www/html/index.html
启动httpd服务
systemctl restart httpd.service
测试
虚拟主机
默认Web站点的建立
- ip
- 端口:80
- 主目录:
/var/www/html
默认主页文件
- index.html
虚拟主机概述
什么是虚拟主机
在一台服务器上运行多个Web站点
- 每个站点拥有独立的域名
为什么要使用虚拟主机
节省资源
- 硬件
- 软件
- IP
Apache的虚拟主机技术
根据客户端输入的URL定向到不同的站点主目录
利用不同端口标示主目录
- IP相同,端口不同
利用不同IP标示主目录
- IP不同,端口相同(80)
利用不同域名标示主目录
- 域名不同,IP相同,端口相同
实施步骤
配置DNS
a) 创建主区域
b) 添加主机记录
c) 启动DNS服务配置Apache服务
创建虚拟主机的根以及主页文件
mkdir /wwwroot/11-hcz -p mkdir /wwwroot/11 echo "<h1>hcz</h1>" > /wwwroot/11-hcz/index.html echo "<h1>hczyyds</h1>" > /wwwroot/11/index.html
创建基于主机头的虚拟主机
vim /etc/httpd/conf.d/httpd-vhosts.conf
```xmlDocumentRoot “/wwwroot/11” ServerName www.11.cn
# Allow open access:
Require all granted
启动httpd服务
`systemctl restart httpd.service`
测试
- 关闭防火墙
- `systemctl stop firewalld.servie`
- 关闭SELinux
- `setenforce 0`
系统配置
- 服务自启动
- `systemctl enable --now httpd`
- 防火墙开放端口
- `firewall-cmd --add-service=http --permanent`
- `firewall-cmd --add-service=dns --permanent`
- `firewall-cmd --reload`
- 配置SELinux标签
- `chcon -t httpd_sys_content_t /wwwroot -R`
<a name="2dc90225"></a>
## 扩展
<a name="132ec787"></a>
### 基于端口的虚拟主机
创建基于端口的虚拟主机
- mkdir /wwwroot/private -p
- echo private > /wwwroot/private/index.html
- vim /etc/httpd/conf.d/private.conf
```xml
Listen 82
<VirtualHost 192.168.11.100:82>
DocumentRoot /wwwroot/private/
ServerName www.11-hcz.cn
</VirtualHost>
<Directory "/wwwroot/private">
AllowOverride None
Require all granted
</Drectory>
重新加载httpd配置文件
systemctl reload httpd
防火墙放行82好端口
firewall-cmd --add-port=82/tcp
SELinux配置
安装semanage工具
yum provides semanage
yum install policycoreutils-python-2.5-22.el7.x86_64
更改SELinux文件标签
semanage fcontext -a -t httpd_sys_content_t '/wwwroot(/.*)?'
restorecon -Rv /wwwroot/
添加SELinux放行端口
semanage port -l | grep http
semanage port -a -t http_port_t -p tcp 82
semanage port -l | grep http