Apache的配置文件一般放置在/etc/httpd/conf文件夹下,httpd.conf是它的主配置文件,在进行配置时可以将虚拟主机的配置文件单独配置,如取名为vhost.conf,然后再http.conf中加入一行包含的语句“Include /etc/httpd/conf/vhost.conf”即可将vhost.conf的配置文件包含进来。
目前在一台服务器上搭建多个网站的方法主要由以下几种:
1、 基于IP地址
这种方法适用于一台服务器有多个IP的情况,但目前阿里云的ECS只允许绑定一个公网IP和一个私网IP,故此方法不适用
2、 基于端口号
这种方法使用不同的端口号来识别不同的网站,实际访问时使用网址加端口号的方式来实现,如http://port.huigher.cn:80,http://port.huigher.cn:81,http://port.huigher.cn:82,该方式配置后需要在网站后加上端口号来访问不同的网站,适用于网站域名短缺但服务器的端口号充足的情况,缺点是网站后需要加上端口号,不利于用户访问
3、 基于主机名
这种方法使用不同的域名来区分不同的网站,所有的域名解析都指向同一个IP,Apache通过在HTTP头中附带的host参数来判断用户需要访问哪一个网站,如http://test1.huigher.cn,http://test2.huigher.cn,http://test3.huigher.cn,多数情况下多个网站架在一台服务器上均使用该方法,下面以CentOS6.5系统为例,说明如何配置基于主机名的Apache虚拟主机。
一、 在Apache的配置文件夹下新建vhost.conf,作为虚拟主机的配置文件,在其中编写虚拟主机的内容,先加入默认的文件头:
NameVirtualHost *:80
ServerName *
# DocumentRoot为默认情况下网站的目录
DocumentRoot /www/html
二、 之后再根据实际情况添加以下的配置:
#在任意的地址上监听80端口上的HTTP请求
#网站管理员的联系方式
ServerAdmin
test@huigher.cn
#网站的目录
DocumentRoot /var/www/html/test3
#主机名,apache就是通过这个地址来识别不同的网站
ServerName test3.huigher.cn
#错误日志路径
ErrorLog logs/test3.huigher.cn-error_log
#访问日志路径
CustomLog logs/test3.huigher.cn-access_log common
四、 服务器上有多少个网站,那么就分别配置多少份以上信息,并根据实际情况修改其中的内容,测试时服务器上的页面配置情况如下:
五、 在http.conf文件中加入一行“Include /etc/httpd/conf/vhost.conf”,将vhost.conf文件内容包含进来
六、在/etc/hosts文件中将网站的域名绑定到本地环回地址上:
127.0.0.1 test1.huigher.cn
127.0.0.1 test2.huigher.cn
127.0.0.1 test3.huigher.cn
七、 最后使用service httpd reload重新加载配置文件或service httpd restart重启Apache进程即可
八、 测试不同的域名返回了不同的网站内容