企业真实环境中,一台 web 服务器发布单个网站非常浪费资源,所以一台 Web 服务器上会发布多个网站,少则 3~5 个,多则 2~30 个网站。在一台服务器上发布多网站,也称之为部署多个虚拟主机,Web 虚拟主机配置方法有以下三种:
其中基于同一端口不同域名的方式在企业中得到广泛应用,以下为基于一个端口不同域名,在一台 Apache Web 服务器上部署多个网站,步骤如下:(配置前保证主机能够 ping 通 CentOS,即 Apache服务器端)
1)创建虚拟主机配置文件 httpd-vhosts.conf ,该文件默认已存在,只需去掉 httpd.conf 配置文件中的 # 号即可。
vim httpd.conf
2)修改配置文件 /usr/local/apache2/conf/extra/httpd-vhosts.conf 中代码,设置如下:
- # 开启虚拟主机,并且监听本地所有网卡接口的80端口
- NameVirtualHost *:80
- # 虚拟主机配置起始
- # 管理员邮箱,记得改!!不要盲目复制!!
- ServerAdmin chen-jialing@qq.com
- # 虚拟主机发布目录
- DocumentRoot "/usr/local/apache2/htdocs/test1"
- # 虚拟主机完整域名
- ServerName www.test1.com
- # 错误日志路径及文件名
- ErrorLog "logs/www.test1.com_error_log"
- # 访问日志路径及文件名
- CustomLog "logs/www.test1.com_access_log" common
- # 虚拟主机配置结束
-
- # 虚拟主机配置起始
- # 管理员邮箱,记得改!!不要盲目复制!!
- ServerAdmin chen-jialing@qq.com
- # 虚拟主机发布目录
- DocumentRoot "/usr/local/apache2/htdocs/test2"
- # 虚拟主机完整域名
- ServerName www.test2.com
- # 错误日志路径及文件名
- ErrorLog "logs/www.test2.com_error_log"
- # 访问日志路径及文件名
- CustomLog "logs/www.test2.com_access_log" common
- # 虚拟主机配置结束
3)创建 www.test1.com 及 www.test2.com 发布目录,重启 Apache 服务,并分别创建 index.html 页面,命令如下:
- mkdir -p /usr/local/apache2/htdocs/{test1,test2}/
- /usr/local/apache2/bin/apachectl restart
- echo "
www.test1.com Pages
" > /usr/local/apache2/htdocs/test1/index.html - echo "
www.test2.com Pages
" > /usr/local/apache2/htdocs/test2/index.html
4)Windows 客户端设置 hosts 映射,将 www.test1.com、www.test2.com 与 Apache 服务器的 IP 地址 进行映射绑定,映射的目的将域名跟 IP 进行绑定,在浏览器可以输入域名,不需要输入 IP 地址,绑定方法是在 “C:\Windows\System32\drivers\etc” 文件夹中,使用记事本编辑 hosts 文件,加入如下代码
- IP地址 www.test1.com
-
- IP地址 www.test2.com
5)浏览器访问 www.test1.com、www.test2.com,至此 Apache 基于多域名虚拟主机配置完毕,如果还需要添加虚拟主机,直接复制其中一个虚拟主机配置、修改 Web 发布目录即可。