- 配置整合Win+Apache+PHP+MySQL+Tc...
- 动态网页制作PHP常用的正则表达式
- PHP实例:上传多个图片并校验的代...
- PHP5中新增加的日期(date)函数的常...
- PHP实例:实现给上传图片加水印图案
- PHP 开发中的中文编码问题
- 用PHP程序直接调用文本文件内容实...
- PHP初学者:配置Apache服务器并且...
- 详细学习PHP中对文件和目录的操作...
- 确保PHP安全,不能违反的四条安全...
- 怎样在PHP 中运用 SimpleXML 处理...
- PHP5.2+APACHE2.2+BugFree1.0的安...
- PHP正式进入IIS微软与Zend携手推动...
- PHP5中PDO的简单使用
- Web服务器IIS6的PHP最佳配置方法
如果服务器有两个IP地址(172.16.3.40和 172.16.3.50)分别对应域名 www.ghq1.com和www.ghq2.org。对每个域名,我们都希望在80端口和8080端口发布我们的网站。可以这样配置:
服务器配置(apache的配置文件httpd.conf)
Listen 172.16.3.40:80
Listen 172.16.3.40:8080
Listen 172.16.3.50:80
Listen 172.16.3.50:8080
<VirtualHost 172.16.3.40:80>
DocumentRoot /www/ghq1-80
ServerName www.ghq1.com
</VirtualHost>
<VirtualHost 172.16.3.40:8080>
DocumentRoot /www/ghq1-8080
ServerName www.ghq1.com
</VirtualHost>
<VirtualHost 172.16.3.50:80>
DocumentRoot /www/ghq2-80
ServerName www.ghq1.org
</VirtualHost>
<VirtualHost 172.16.3.50:8080>
DocumentRoot /www/ghq2-8080
ServerName www.ghq2.org
</VirtualHost>
因此,建立虚拟主机,我们要做好不同的IP对应的域名解析工作,建立相应的目录(如/www/ghq1),将相应的主页内容存放在相应的目录中即可。
二、Apache实现基于主机名的虚拟主机服务(一个IP地址实现多个网站)
基于主机名字的虚拟主机服务,是目前虚拟主机比较常用的一种方案。因为它不需要更多的IP地址,无须什么特殊的软硬件支持。而且现在的浏览器大都支持这种虚拟主机的实现方法。基于域名的的虚拟主机是根据客户端提交的HTTP头中的关于主机名的部分决定的。使用这种技术,很多虚拟主机可以享用同一个IP地址。
基于域名的虚拟主机相对比较简单,因为我们只需要配置DNS服务器将每个主机名映射(CNAMES)到正确的IP地址,然后配置Apache HTTP服务器,令其辨识不同的主机名就可以了。基于域名的服务器也可以缓解IP地址(IPV4)不足的问题。这种方式下,各个虚拟主机共享同一份Apache,因此有CGI程序运行时,安全性也不高。
优点:只要一个IP地址就可以提供大量的虚拟主机服务。
缺点:安全性差。维护这些虚拟主机时需要更改配置文件,并且需要重新启动Apache进程才能起作用。因此不适合进行大规模的虚拟主机服务。
如果服务器只有一个IP地址,而在DNS中有很多映射到这个机器。我们想要在这个机器上运行www.ghq1.com和 www.ghq2.org两个站点。在Apache服务器的配置中创建一个虚拟主机并不会自动在DNS中对主机名做相应更新。我们必须自己在DNS中添加域名来指向我们的IP地址。否则别人是无法看到我们的web 站点。
