apache-实战,二


虚拟主机 --用apache或nginx就可以做

一台服务器跑多台web服务

VPS virtual private server 虚拟专用服务器 --使用虚拟化技术来做

云服务器

虚拟主机(用web服务器来做)--》 VPS (虚拟化) --》 云服务器 (云计算)

使用虚拟化技术(vitural sever 或者 vmware EXS server )把一台服务器分隔成几个服务器,每个都拥有独立的CPU资源,内存资源,磁盘资源,独立IP等、

mkdir -p /var/www/html/A

mkdir -p /var/www/html/B

1.基于IP的虚拟主机

NameVirtualHost *:80

<VirtualHost *:80>

DocumentRoot /var/www/html/A

ServerName 192.168.1.1

ErrorLog logs/1-error_log

CustomLog logs/1-access_log common

</VirtualHost>

<VirtualHost *:80>

DocumentRoot /var/www/html/B

ServerName 192.168.1.2

ErrorLog logs/2-error_log

CustomLog logs/2-access_log common

</VirtualHost>

# ifconfig eth0:0 192.168.1.12 netmask 255.255.255.0   将上面虚拟主机中使用的ip都虚拟出来

验证:

http://192.168.1.1

http://192.168.1.2   --实际情况每个IP使用DNS对应自己的域名、

2.基于端口的虚拟主机

Listen 80

Listen 8080

<VirtualHost *:80>

DocumentRoot /var/www/html/A

ServerName 192.168.1.1

ErrorLog logs/1-error_log

CustomLog logs/1-access_log common

</VirtualHost>

<VirtualHost *:8080>

DocumentRoot /var/www/html/B

ServerName 192.168.1.1

ErrorLog logs/2-error_log

CustomLog logs/2-access_log common

</VirtualHost>

#重启并验证

3.基于域名的虚拟主机

这里可以用hosts文件,也可以用bind服务,不会bind的看一下我前面的bind搭建

NameVirtualHost *:80

<VirtualHost *:80>

DocumentRoot /var/www/html/A

ServerName aaa.http.com

ErrorLog logs/1-error_log

CustomLog logs/1-access_log common

</VirtualHost>

<VirtualHost *:80>

DocumentRoot /var/www/html/B

ServerName bbb.http.com

ErrorLog logs/2-error_log

CustomLog logs/2-access_log common

</VirtualHost>

#重启并验证

#####思考#####

1.上面两个域名,那么我直接用IP是能否访问,访问的是哪一个?为什么?

    答案:哪个虚拟主机在最前面,直接使用IP访问的就是哪一个

2.配置了虚拟主机后,那么我原来的DocumentRoot里指的原网站家目录是否还可用?

如果不可用,如何解决?

    答案:不能用。除非再为原家目录再建立一个虚拟主机

3.上面这三种各有什么优缺点?

    基于IP:浪费IP

    基于端口:访问时需要加端口,客户不可能记端口的

    基于域名:比较适合外网直接访问