欢迎来到福编程网,本站提供各种互联网专业知识!

Apache设置虚拟WEB

发布时间:2006-10-09 作者: 来源:转载
ApacheServer设置虚拟WEB先举个例子:假设你的PHP装在d:/php/下.Copyphp4apache.dll(php4apache2.dll)到d:/php/在Aapche的httpd.conf下面加入:######################################################Aapche1是:LoadModulephp4_module"d:/php/php4apache.dll

ApacheServer设置虚拟WEB

先举个例子:

假设你的PHP装在d:/php/下.

Copyphp4apache.dll(php4apache2.dll)到d:/php/

在Aapche的httpd.conf下面加入:

######################################################

Aapche1是:

LoadModulephp4_module"d:/php/php4apache.dll"

Aapche2是:

LoadModulephp4_module"d:/php/php4apache2.dll"

添加由PHP解析的扩展名:

AddTypeapplication/x-httpd-php.phtml.pwml.php3.php4.php.php2.inc.izz

######################################################

现在,你只要重启Apache后,就可以支持PHP了.

#下面这一行只有Apache1支持

LoadModulegzip_modulemodules/ApacheModuleGzip.dll

ApacheModuleGzip(即:mod_gzip),是RemoteCommunications免费提供的一个Apache模块,它可以压缩静态的web页面。它工作得很好,你只需要将它和apache一起编译就行了(或者将它作为一个DSO使用)。

你也可以在冰冰本站下载:

http://justdn.com/down/apache/ApacheModuleGzip.dll

更多的PHP加速和缓冲建议可以在冰冰的PHP文档中获取.

Apache如何建虚拟主机呢?下面简单介绍基于域名的虚拟主机.

比如你的服务器地址是:61.132.27.69(这个是冰冰的啦),现在我们要建www.justdn.org和www.justdn.com两个虚拟主机.

在Apache的httpd.conf后面加上如下的代码

######################################################

NameVirtualHost61.132.27.69

ServerAdminwebmaster@justdn.com

DocumentRootC:/home/justdn.com/

ServerNamewww.justdn.com

ServerAliasjustdn.comwwww.justdn.com

ErrorLoglogs/www.justdn.com-error_log

CustomLoglogs/www.justdn.com-access_logcommon

ErrorDocument404/404.html

ServerAdminwebmaster@justdn.com

DocumentRootc:/home/justdn.org/

ServerNamewww.justdn.org

ServerAliaswwww.justdn.orgjustdn.org

ErrorLoglogs/www.justdn.org-error_log

CustomLoglogs/www.justdn.org-access_logcommon

######################################################

下面解释一下,

ServerAdmin,就是管理员的邮箱啦.

DocumentRoot,该虚拟主机的站点文档目录.

ServerName,域名咯.

ServerAliasjustdn.comwwww.justdn.com,说明既可以用www.justdn.com访问,又可以用justdn.com访问站点.

ErrorDocument404/404.html,指自定义该站点的404页面为该站点根目录下的404.html文件.

说明:

Unix平台与NT平台使用apacheserver的设置相同。以下重点以unix平台为例说明apacheserver的设置。另外值得注意的是,虚拟web的成功设置,有大约50%的工作量是在域名的注册与解析方面。所以一般先注册好域名然后再做虚拟WEB设置。

一、IP型虚拟主机

IP型虚拟主机指每一虚拟主机对应唯一的IP。可通过多个物理网卡或虚拟网口实现多IP,Solaris2.5和WindowsNT都支持这种方式。

两种配置多虚拟主机的方法:

1、为每一虚拟主机启动一个httpd进程。

下列情况下使用此方法:

1)需考虑安全隔离问题,如两个httpd运行于不同的User、Group、Listen、ServerRoot,两者用户除通过Web相互浏览数据,无法访问其他数据。

2)能提供足够内存和文件描述器。

设置方法:

为每一虚拟主机建立一个独立的httpd安装,在每一个安装路径的配置文件httpd.conf里,用Listen指令指定进程服务的IP,如:Listen10.68.37.10:80

2、为所有虚拟主机启动一个httpd进程。

下列情况下使用此方法:

1)允许在虚拟主机间共享httpd配置。

2)计算机服务于大量的请求,运行多个进程使服务器性能降低成为重要考虑因素。

设置方法:

在配置文件httpd.conf里,用VirtualHost指令为每一虚拟主机设置ServerAdmin、ServerName、DocumentRoot、ErrorLog、TransferLog或CustomLog,如:

〈VirtualHostwww.smallco.com〉#此处建议用IP

ServerAdminwebmaster@mail.smallco.com

DocumentRoot/usr/local/etc/httpd/htdocs/smallco

ServerNamewww.smallco.com#建议此处用域名

ErrorLog/usr/local/etc/httpd/logs/smallco/error_log

TransferLog/usr/local/etc/httpd/logs/smallco/access_log

〈/VirtualHost〉

〈VirtualHostwww.baygroup.org〉#此处建议用IP

ServerAdminwebmaster@mail.baygroup.org

DocumentRoot/groups/baygroup/www

ServerNamewww.baygroup.org#建议此处用域名

ErrorLog/groups/baygroup/logs/error_log

TransferLog/groups/baygroup/logs/access_log

〈/VirtualHost〉

同时要做虚拟网口或网卡的配置,在DNS也要做相应设置。

二、名字型虚拟主机(Apache1.3以上版本支持)

IP型虚拟主机虽好,但不是最佳方案。它要求每一虚拟主机有一专用IP,在某些机器上难于实现。名字型虚拟主机是指每一虚拟主机的名字不相同,但IP一样。它的好处是不限制虚拟主机数量,配置、使用简单,不需另外的软硬件。缺点是客户端必须支持该部分协议,最近版本的浏览器都支持,某些老版本浏览器不支持。但Apache为此提供了解决方法。

设置方法:

在配置文件httpd.conf里,用NameVirtualHost指令设置虚拟主机,如:

NameVirtualHost111.22.33.44

〈VirtualHost111.22.33.44〉#建议此处用IP

ServerNamewww.domain.tld#建议此处用域名

DocumentRoot/web/domain

〈/VirtualHost〉

同时,在DNS定义www.domain.tld指向111.22.33.44。

注意:当在NameVirtualHost指令后使用IP时,任何使用IP的URL请求都是针对虚拟主机的,主服务器从不会响应一个使用IP的URL请求。另外,有些服务器希望以多个名字被访问。例如,假设有某一IP的服务器,希望以名domain.tld、www2.domain.tld都能被访问,做法是在VirtualHost指令部分使用ServerAlias指令。如:ServerAliasdomain.tld*.domain.tld

另附一些虚拟主机的设置实例。

附:虚拟主机设置实例

IP型的虚拟主机配置

Setup1:服务器有两个IP,

111.22.33.44server.domain.tld

111.22.33.55www.otherdomain.tld

www.domain.tld是server.domain.tld的别名(CNAME),代表主服务器。

服务器配置:

...

Port80

DocumentRoot/www/domain

ServerNamewww.domain.tld

〈VirtualHost111.22.33.55〉

DocumentRoot/www/otherdomain

ServerNamewww.otherdomain.tld

...

〈/VirtualHost〉

Setup2:基本同Setup1,但不设置专门的主服务器。

服务器配置:

...

Port80

ServerNameserver.domain.tld

〈VirtualHost111.22.33.44〉

DocumentRoot/www/domain

ServerNamewww.domain.tld

...

〈/VirtualHost〉

〈VirtualHost111.22.33.55〉

DocumentRoot/www/otherdomain

ServerNamewww.otherdomain.tld

...

〈/VirtualHost〉

这种设置只有当URL为http://server.domain.tld时才击中主服务器

Setup3:服务器有两个IP,

111.22.33.44server.domain.tld

111.22.33.55www-cache.domain.tld

www.domain.tld是server.domain.tld的别名(CNAME),代表主服务器。

www-cache.domain.tld是proxy-cache,端口是8080,Web服务器使用默认的80。

服务器配置:

...

Port80

Listen111.22.33.44:80

Listen111.22.33.55:8080

ServerNameserver.domain.tld

〈VirtualHost111.22.33.44:80〉

DocumentRoot/www/domain

ServerNamewww.domain.tld

...

〈/VirtualHost〉

〈VirtualHost111.22.33.55:8080〉

ServerNamewww-cache.domain.tld

...

〈Directoryproxy:〉

orderdeny,allow

denyfromall

allowfrom111.22.33

〈/Directory〉

〈/VirtualHost〉

名字型虚拟主机配置

Setup1:服务器有一个IP,

111.22.33.44server.domain.tld.

www.domain.tld和www.sub.domain.tld是别名(CNAMEs)。

服务器配置:

...

Port80

ServerNameserver.domain.tld

NameVirtualHost111.22.33.44

〈VirtualHost111.22.33.44〉

DocumentRoot/www/domain

ServerNamewww.domain.tld

...

〈/VirtualHost〉

〈VirtualHost111.22.33.44〉

DocumentRoot/www/subdomain

ServerNamewww.sub.domain.tld

...

〈/VirtualHost〉

若使用IP访问服务器,由于www.domain.tld有最高优先级,被认为是默认服务器或

第一服务器。

Setup2:服务器有两个IP,

111.22.33.44server1.domain.tld用于主服务器

111.22.33.55server2.domain.tld用于虚拟主机

别名www.domain.tld用于主服务器,

别名www.otherdomain.tld用于一个虚拟主机,

别名www.sub.domain.tld,*.sub.domain.tld用于另一虚拟主机,

服务器配置:

...

Port80

ServerNamewww.domain.tld

DocumentRoot/www/domain

NameVirtualHost111.22.33.55

〈VirtualHost111.22.33.55〉

DocumentRoot/www/otherdomain

ServerNamewww.otherdomain.tld

...

〈/VirtualHost〉

〈VirtualHost111.22.33.55〉

DocumentRoot/www/subdomain

ServerNamewww.sub.domain.tld

ServerAlias*.sub.domain.tld

...

〈/VirtualHost〉

混合型(IP/名字)虚拟主机配置

Setup:服务器有三个IP,

111.22.33.44server.domain.tld用于名字型虚拟主机

111.22.33.55www.otherdomain1.tld用于IP型虚拟主机

111.22.33.66www.otherdomain2.tld用于IP型虚拟主机

服务器配置:

...

Port80

ServerNameserver.domain.tld

NameVirtualHost111.22.33.44

〈VirtualHost111.22.33.44〉

DocumentRoot/www/domain

ServerNamewww.domain.tld

...

〈/VirtualHost〉

〈VirtualHost111.22.33.44〉

DocumentRoot/www/subdomain1

ServerNamewww.sub1.domain.tld

...

〈/VirtualHost〉

〈VirtualHost111.22.33.44〉

DocumentRoot/www/subdomain2

ServerNamewww.sub2.domain.tld

...

〈/VirtualHost〉

〈VirtualHost111.22.33.55〉

DocumentRoot/www/otherdomain1

ServerNamewww.otherdomain1.tld

...

〈/VirtualHost〉

〈VirtualHost111.22.33.66〉

DocumentRoot/www/otherdomain2

ServerNamewww.otherdomain2.tld

...

〈/VirtualHost〉

端口型虚拟主机配置

Setup:服务器有一个IP,

111.22.33.44www.domain.tld

不需要另外的别名或IP,采用端口型虚拟主机即可设置一个配置有别于主服务器的虚

拟主机。

服务器配置:

...

Listen80

Listen8080

ServerNamewww.domain.tld

DocumentRoot/www/domain

〈VirtualHost111.22.33.44:8080〉

DocumentRoot/www/domain2

...

〈/VirtualHost〉

相关推荐