在同一台服务器中运行多个Web站点,其中每一个站点并不独立占用一台真正的主机
VMware Workstation 15.5、Centos 7.6、windows10专业工作站版、XShell 6
1、安装http与DNS服务
[root@localhost ~]# yum -y install httpd bind
2、修改DNS主配置文件
[root@localhost ~]# vi /etc/named.conf
将两处红框部分修改为any
[root@localhost ~]#vi /etc/named.rfc1912.zones
修改为以下内容:
zone "test.com" IN { ## test.com为域名
type master;
file "test.com.zone"; ##test.com.zone为区域数据配置文件名(可以自行定义)
allow-update { none; };
};
zone "test1.com" IN {
type master;
file "test1.com.zone";
allow-update { none; };
};
[root@localhost ~]# cd /var/named/ ## 进入目录
[root@localhost named]# cp -p named.localhost test.com.zone ## 将区域数据配置文件模板拷贝
[root@localhost named]# vim test.com.zone ## 编辑区域数据配置文件(需要修改的内容参考下图)
[root@localhost named]# cp -p test.com.zone test1.com.zone ## 将编辑好的配置文件再改名复制一份(因为有两个域名需要域名解析)
5、启动DNS服务
[root@localhost named]# systemctl start named
7、关闭防火墙及系统核心防护功能
[root@localhost named]# iptables -F
[root@localhost named]# setenforce 0
8、在win10机上打开“命令提示符”,使用命令查看域名解析是否生效
nslookup www.test.com
nslookup www.test1.com
[root@localhost named]# cd /etc/httpd/conf
[root@localhost conf]# cd extra/
[root@localhost extra]# vim host.conf
写入如下配置文件:
DocumentRoot "/var/www/html/test"
ServerName www.test.com
ErrorLog "logs/www.test.com.error_log"
CustomLog "logs/www.test.com.access_log" common
Require all granted
DocumentRoot "/var/www/html/test1"
ServerName www.test1.com
ErrorLog "logs/www.test1.com.error_log"
CustomLog "logs/www.test1.com.access_log" common
Require all granted
10、因为host.conf是我们自己创建的一个配置文件,服务并不能直接读取到该文件,要使让httpd.conf在运行时读取该配置文件,所以要对http服务配置文件进行修改
[root@localhost extra]# vim /etc/httpd/conf/httpd.conf ## 编辑http配置文件
在末行添加如下内容:
Include conf/extra/host.conf
11、给test与test1两个web创建页面
[root@localhost extra]# cd /var/www/html/ ## 进入站点目录
[root@localhost html]# mkdir test test1 ## 创建两个站点目录test、test1
[root@localhost html]# cd test ## 进入test的站点目录
[root@localhost test]# vim index.html ## 创建一个默认首页
添加如下内容:
Test Web
[root@localhost test]# cd .. ## 回到上一层目录
[root@localhost html]# cd test1/ ## 进入test1的站点目录
[root@localhost test1]# vim index.html ## 创建一个默认首页
添加如下内容:
Test1 Web
12、启动http访问
[root@localhost extra]# systemctl start httpd
13、在win10机的浏览器上分别使用域名访问,查看能否进入访问站点
实验成功!
1、修改虚拟主机配置文件
[root@localhost extra]# vim /etc/httpd/conf/extra/host.conf ## 进入配置文件
复制第二段的9行代码并粘贴到下方,将所有test1改为test2,除了ServerName,因为我们要实现基于端口区分网站:
DocumentRoot "/var/www/html/test2"
ServerName www.test1.com
ErrorLog "logs/www.test2.com.error_log"
CustomLog "logs/www.test2.com.access_log" common
Require all granted
2、创建test2站点的首页文件
[root@localhost extra]# mkdir /var/www/html/test2 ## 创建test2站点目录
[root@localhost extra]# vim /var/www/html/test2/index.html ## 创建站点首页文件
下入如下内容:
Test2 Web
3、修改http服务主配置文件,添加监听端口8080
[root@localhost extra]# vi /etc/httpd/conf/httpd.conf ## 编辑配置文件
找到Listen所在IP地址与端口的对应行,修改为如下内容:
Listen 192.168.50.134:80
Listen 192.168.50.134:8080
#Listen 80
4、重启http服务
[root@localhost extra]# systemctl restart httpd.service
5、在win10机的浏览器上清空所有缓存及浏览记录,并重启浏览器
分别访问www.test1.com与www.test1.com:8080,查看结果:
实验成功!实现了同一域名的不同端口访问不同站点
1、编辑并修改虚拟主机配置文件
[root@localhost extra]# vim /etc/httpd/conf/extra/host.conf ## 编辑配置文件
在末行模式下输入:set nu显示行号
再输入:11,29 s/^/#/g将11-29行前面全部加上注释
光标回到第一行,在键盘上按9yy,复制含当前行在内的9行内容,将光标移动到第10行,按p键粘贴即可
PS:以上都是VIM编辑器的快捷操作命令,如果大家还不熟悉编辑器操作的话可以先学习编辑器操作
将80前面的*号改为虚拟机两块网卡的IP地址,并将域名ServerName一行删去,修改日志文件及站点目录,配置文件如下:
DocumentRoot "/var/www/html/test"
ErrorLog "logs/www.test.com.error_log"
CustomLog "logs/www.test.com.access_log" common
Require all granted
DocumentRoot "/var/www/html/test1"
ErrorLog "logs/www.test1.com.error_log"
CustomLog "logs/www.test1.com.access_log" common
Require all granted
2、修改http服务主配置文件,将监听IP分别修改为虚拟机网卡的两个IP
[root@localhost extra]# vim /etc/httpd/conf/httpd.conf ## 修改配置文件
3、重启http服务
[root@localhost extra]# systemctl restart httpd
4、在win’10虚拟机上分别访问两个IP(注意!在访问之前一定要清除缓存!)
实验成功!实现了基于不同IP访问不同网站