目前在一台服务器上搭建多个网站的方法主要由以下几种:
1、 基于IP地址
这种方法适用于一台服务器有多个IP的情况,但目前阿里云的ECS只允许绑定一个公网IP和一个私网IP,故此方法不适用
2、 基于端口号
这种方法使用不同的端口号来识别不同的网站,实际访问时使用网址加端口号的方式来实现,如http://www.aaa.com,http://www.bbb.com:81,http://www.ccc.com:82,该方式配置后需要在网站后加上端口号来访问不同的网站,适用于网站域名短缺但服务器的端口号充足的情况,缺点是网站后需要加上端口号,不利于用户访问
3、 基于主机名
这种方法使用不同的域名来区分不同的网站,所有的域名解析都指向同一个IP,Apache通过在HTTP头中附带的host参数来判断用户需要访问哪一个网站,如http://www.aaa.com,http://www.bbb.com,http://www.ccc.com,多数情况下多个网站架在一台服务器上均使用该方法
在/etc/httpd/conf/目录下新建vhost.conf
- NameVirtualHost *:80
- ServerName *
- # DocumentRoot为默认情况下网站的目录
- DocumentRoot /var/www/html
- #之后再根据实际情况添加以下的配置
- ServerAdmin a@a.com
- #网站的目录
- DocumentRoot /var/www/html/a
- #主机名,apache就是通过这个地址来识别不同的网站
- ServerName www.aaa.com
- #错误日志路径
- ErrorLog logs/ www.aaa.com-error_log
- #访问日志路径
- CustomLog logs/www.aaa.com-access_log common
- ServerAdmin b@b.com
- #网站的目录
- DocumentRoot /var/www/html/b
- #主机名,apache就是通过这个地址来识别不同的网站
- ServerName www.bbb.com
- #错误日志路径
- ErrorLog logs/ www.bbb.com-error_log
- #访问日志路径
- CustomLog logs/www.bbb.com-access_log common
- 127.0.0.1 www.aaa.com
- 127.0.0.1 www.bbb.com
- 127.0.0.1 www.ccc.com
在http.conf文件中加入一行“Include /etc/httpd/conf/vhost.conf”,将vhost.conf文件内容包含进来
重新启动下apache
- sudo /etc/init.d/httpd restart