企业真实环境中, 一台服务器发布单个网站非常浪费资源,所以一台 web 服务器上会发布多个网站少则2~3个多则 30多个网站 在一台服务器上发布多网站,也称之为部署多个虚拟主机, Web 虚拟主机配置方法有以下 种:
1、基于单 IP 多个 socket 端口;
2、基于多 IP 地址一个端口;
3、基于单 IP 个端口不同域名
其中基于同一端口不同域名的方式在企业中得到广泛应用,以下为基于一个端口不同域名,在一台 Apache Web 服务器上部署多个网站,步骤如下:
(1 )创建虚拟主机配置文件 httpd-vhosts. conf ,该文件默认已存在,只需去掉 httpd.
conf 配置文件中的#号即可,
[root@localhost htdocs]# vim /usr/local/apache2/conf/httpd.conf
# Virtual hosts
480 Include conf/extra/httpd-vhosts.conf
(2 )修改配置文件 /usr/local/apache2/conf/extra/httpd-vhosts.conf 中代码,设置如下:
NameVirtualHost *:80
# 开启虚拟主机,并且监昕本地所有网卡接口的 80 端口
<VirtualHost *:80>
# 虚拟主机配置起始
ServerAdmin xxx@qq.com
# 管理员邮箱
DocumentRoot "/usr/local/apache2/htdocs/jf1"
# 虚拟主机发布目录
ServerName www.jf1.com
# 虚拟主机完整域名
ErrorLog "logs/www.jf1.com_errot_log"
# 错误日志存放日志
CustomLog "logs/www.jf1.com_access_log" common
# 访问日志路径
</VirtualHost>
# 虚拟主机配置结束
<VirtualHost *:80>
ServerAdmin xxx@qq.com
DocumentRoot "/usr/local/apache2/htdocs/jf2"
ServerName www.jf2.com
ErrorLog "logs/www.jf2.com_errot_log"
CustomLog "logs/www.jf2.com_access_log" common
</VirtualHost>
(3 )创建 www jfl. com www. jf2. com 发布目录,重启 Apache 服务,并分别创建index. html 页面,命令如下
[root@localhost apache2]# mkdir -p /usr/local/apache2/htdocs/{jf1,jf2}/
[root@localhost apache2]# /usr/local/apache2/bin/apachectl restart
AH00548: NameVirtualHost has no effect and will be removed in the next releae /usr/local/apache2/conf/extra/httpd-vhosts.conf:23
[root@localhost htdocs]# echo "<h1> www.jf1.com Pages </h1>">/usr/local/apace2/htdocs/jf1/index.html
[root@localhost htdocs]# echo "<h1> www.jf2.com Pages </h1>">/usr/local/apace2/htdocs/jf2/index.html
(4) Windows 客户端设置 hosts 映射,将 www jfl. com www. jf2. com 与主机 IP(按照实际主机IP,我这里是192.168.1.4) 进行映射绑定,映射的目的将域名跟 进行绑定,在浏览器可以输入域名,不需要输入 IP 地址,绑定方法是在“C: \ Windows System32\drivers\etc”文件夹中,使用记事本编辑 hosts 文件,加入如下代码
192.168.1.4 www.jf1.com
192.168.1.4 www.jf2.com
(5 )浏览器访问 www. jfl.com www. jf2.com ,如图所示,至此 Apach 于多名虚拟主机配置完毕,如果还需添加虚拟主机,直接复制其中一个虚拟主机配置、修改Web发布目录即可。