一、虚拟主机实现原理
注意: 谁顺序排第一,谁就是默认站点
1.虚拟主机
即实现一个httpd服务器,可以对多个站点提供服务
2.实现方法——IP
将IP地址和站点路径相关联
3.实现方法——port
将端口号和站点路径相关联
4.实现方法——FQDN
将网站地址和站点路径相关联
通过http报文首部实现
首部写了网站地址
二、实现
1.准备站点路径及访问的主页面
网站名 | 站点路径 |
---|---|
www.a.com | /var/www_a/html/ |
www.b.com | /var/www_b/html/ |
mkdir /var/www_a/html -p
echo "this is www.a.com" >> /var/www_a/html/index.html
mkdir /var/www_a/html/log/
mkdir /var/www_b/html -p
echo "this is www.b.com" >> /var/www_b/html/index.html
mkdir /var/www_b/html/log/
2.配置文件
vim /etc/httpd/conf.d/fqdn.conf
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /var/www_a/html
ServerName www.a.com
ErrorLog /var/www_a/html/log/error_log
CustomLog /var/www_a/html/log/access_log common
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www_b/html
ServerName www.b.com
ErrorLog /var/www_b/html/log/error_log
CustomLog /var/www_a/html/log/access_log common
</VirtualHost>
3.注意
在httpd2.2版本中,如果要使用FQDN的虚拟主机技术
必须声明开启此功能
NameVirtualHost *:80
在/etc/httpd/conf/httpd.conf中
或/etc/httpd/conf.d/*.conf中声明即可
三、测试
1.测试机的地址解析配置
vim /etc/hosts #添加
172.17.16.169 www.a.com www.b.com
2.测试结果
3.服务器端日志记录
[root@localhost /etc/httpd/conf.d]$ tail -n 2 -f /var/www_a/html/log/access_log
172.17.16.173 - - [16/Oct/2017:15:53:21 -0400] "GET / HTTP/1.1" 200 18
172.17.16.173 - - [16/Oct/2017:15:53:28 -0400] "GET / HTTP/1.1" 200 18
172.17.16.173 - - [16/Oct/2017:15:58:12 -0400] "GET / HTTP/1.1" 200 18
172.17.16.173 - - [16/Oct/2017:15:58:13 -0400] "GET / HTTP/1.1" 200 18
172.17.16.173 - - [16/Oct/2017:15:58:22 -0400] "HEAD / HTTP/1.1" 200 -