好好先生 回复于:2003-11-21 10:36:58 |
是自己写的吧?成功了吧? |
yunlei 回复于:2003-11-21 11:22:51 |
[quote:ee39aaad9c="好好先生"]是自己写的吧?成功了吧?[/quote:ee39aaad9c] 在理论上可以支持上千个虚拟主机,而且非常方便,简单,是我写的拉,欢迎讨论,下面写了个基于IP地址的动态虚拟主机,贴出来给大家 |
yunlei 回复于:2003-11-21 11:23:57 |
基于IP的动态虚拟主机 需要的指令: VirtualDocumentRootIP 和VirtualDocumentRoot相似,但它是从请求到达的IP地址那里构造动态虚拟主机DocumentRoot的路径地 VirutalScriptAliasIP 和VirtualScirptAlias相似,但它是从请求到达的IP地址那里,构造CGI脚本目录的路径。 /*由于mod_vhost_aliases在请求到达服务器时构造动态主机路径,所以DocumentRoot和ScriptAlias实际上是根据客户尝试请求的虚拟主机进行变化的变量,所以在httpd.conf当中,不必针对每个虚拟主机明确指定这两个指令。实际上不需要在httpd.conf中指定任何虚拟主机,网管唯一要做的是,确保在服务器上针对每个虚拟主机都存在一个目录,如果该目录不存在,客户端将收到一个not found的信息。*/ 例子: 环境:本机IP:192。168。9。254 一、增加IP地址 方法: #ifconfig 192.168.9.1 #ifconfig 192.168.9.2 // 重新启动后失效,若希望永远生效,请增加eth0:0和eth0:1.以192.168.9.1为例,%1=192,%2=168,%=9,%4=1 二、修改httpd.conf文件 UseCanonicalName DNS VirtualDocumentRootIP /home/httpd/www/%4 VirtualScriptAliasIP /home/httpd/www/cgi-bin/%4 重新启动apache。 三、在相关位置建立以下目录 #mkdir /home/httpd/www #mkdir /home/httpd/www/1 #mkdir /home/httpd/www/cgi-bin/1 //创建到192。168。9。1的虚拟主机网页根目录 #mkdir /home/httpd/www/2 #mkdir /home/httpd/www/cgi-bin/2 //创建到192.168.9.2的虚拟主机网页根目录。 三、在DNS中设置,将192.168.9.1解析成 www.163.com 将192.168.9.2解析成 www.263.net 四、可以访问拉。 /*由于IP地址的每个部分可以取1---254之间的数值,所以这个方法可以建立254个基于IP的虚拟主机。也可以做支持254*254 台的虚拟主机,但意义不大。*/ UseCanonicalName on apahce使用 ServerName和Port生成自指URL,来构造服务器的规范名称。 UseCanonicalName off apache使用由客户提供的主机头指令的主机名称和端口号为服务器构造自指URL, off经常用于基于名称的动态虚拟主机 UseCanonicalName DNS 用于基于IP的动态虚拟主机。apache使用DNS执行客户连接IP地址搜索时确定的主机名,构造服务器自指URL,可以用在服务器环境,但在基于名字的虚拟主机下不起作用地。 |
yanyp 回复于:2003-11-23 21:22:44 |
多谢多谢,正找这个呢 |
wienne 回复于:2003-11-27 15:18:55 |
试验过了,成功! 不过 原有的www.test.com,它也跑到指定的目录下去找文件了。 可我的文件却放到 htdocs/目录下。 有没有办法,让某几个名字不做这样的替换? |