Zope3和Apache一起设置一个虚拟主机环境

在Zope世界里一个最普遍的任务就是将Zope隐藏在">Apache服务器的后面。这样做是为了使用所有Apache提供的良好的特性,最重要的是SSL加密特性。

Apache及其他网络服务器是通过在虚拟主机中指定的重写规则来连接到Zope的。 正确的解释这些请求并提供有意义的输出是Zope的任务。你可能认为这是很容易的,因为你只须指向Zope服务器的正确的URL。 但是这只是问题的一半。指向另一个对象的URL是怎么样的呢?在这一点上你需要告诉Zope真实的虚拟主机住址是什么。 在Zope3中通过利用一个特殊的名字空间叫"vh"来完成的。它指定了"公共的"地址。

在我们可以在我们的服务器上开始建立一个虚拟主机之前,我们将完成以下的清单:

确定Zope3运行在http://localhost:8080/site/或者类是的http://destination url:port/path-to-site/这样的路径。

确定Apache运行在http://www.example.com:80/或者类似http://public url:port/的路径。

Zope3使用它的URL名字空间性能来提供虚拟主机,所以不需要特殊组件或者编码实践。这意味着虚拟主机是永远可用的。通常的,通过在URL中加入++namespace++元素来指定一个名字空间。对于vh名字空间,我们有++vh++Public-URL++。注意在 URL结尾处的++是特指给vh名字空间的。用标明了Public URL的末尾。

名字空间手段的好处是,一个人永远不会由于错误的配置而将她/他自己锁在外面。 有些Zope2的虚拟主机解决方案就有这个问题并且引来不必要的头痛。在Zope2中还不得不增加一个额外的对象。 Zope3对于这个任务不利用任何的服务或者实用工具,这些使虚拟主机成为一个非常核心的功能。

然而,从Apache的观点,建立的过程很类似于Zope2。在httpd.conf文件--通常的可以在/etc或者/etc/httpd下面找到--插入以下的行:

1   LoadModule proxy_module /path/to/apache/1.3/libproxy.so

3   Listen 80

5   NameVirtualHost *:80

7   <VirtualHost *:80>
8     SSLDisable
9     ServerName www.example.com
10     RewriteEngine On
11     RewriteRule ^/site(/?.*) \
12   http://localhost:8080/site/++vh++http:www.example.com:80/site/++$1 \
13   [P,L]
14     CustomLog /var/log/apache/example.com/access.log combined
15     ErrorLog /var/log/apache/example.com/error.log
16   </VirtualHost>

在前面的代码块中,注意下列几行:

行1:载入允给重写和URL的模块。
行3:设置Apache服务器的默认端口80。
行5:声明所有在80端口上进入的请求作为虚拟主机的站点。
行7-16:这些全部是在80端口上虚拟主机的特别配置。
行8:对于通讯不使用SSL加密。我们只允许正常的HTTP连接。

注意:如果 SSL 能的话(也就是说如果 modssl 被安装)你只需要这一行。如果 SSL 没有安装,这一行在启动时将会引起一个配置错误。

行9:虚拟主机对外界的名字是www.example.com。
行10:开启重写引擎,基本上告诉Apache这个虚拟主机将要重写和重定向请求。
行11-13:在这些行里面的代码应该是在一行里的。它定义了实际的重写规则。这个规则说道:"如果你要找在主机名和端口后面以/site开头的 URL 的话,那么重定向这个URL到http://localhost:8080/site/+vh++http:www.example.com: 80/site/++后面加上任意的需要加的内容。" 例如:www.example.com:80/site/hello.html将被重写为http:// localhost:8080/site/++vh++http:www.example.com:80/site/++/hello.html。

注意:++vh++后面的部分必须严谨的遵守这样的样式:"协议:主机:端口/路径(protocol:host:port/path)"。即使端口是80,你也必须指定它。

行14:定义访问日志的位置。

注意:前面的配置步骤也可在 Apache2 下验证通过。

我们完成了。很简单,不是吗?所有你需要做的就是重启Apache,以便使改变的配置生效。

在Zope3方面不需要任何特殊的配置。 Zope实际上完全没有注意到虚拟主机的设置。 注意,你并不必需将www.example.com/site映射到localhost:8080/site,取而代之的是你可以选择Zope服务器上的任何位置。你现在可以联合其它的Apache配置项目到以上所述的设置中,例如SSL。只是使用443端口来代替80端口并启动SSL即可。

注意:当前的问题:在管理界面里的XML导航树不支持虚拟主机,这是由于它看待URL的方式决定的。

时间: 2024-09-20 04:23:59

Zope3和Apache一起设置一个虚拟主机环境的相关文章

购买一个虚拟主机多少钱

购买一个http://www.aliyun.com/zixun/aggregation/14840.html">虚拟主机多少钱?想必能问出这个问题不是中小企业和草根站长,就是想要建站的菜鸟站长了.对于众屌丝站长来说,虚拟主机的价格应该比啥质量.优势之类的噱头有吸引力多了. 其实在虚拟主机服务上满天飞的今天,购买一个虚拟主机真的花不了几个钱,中小站长对网站容量的要求也比较低,200M-500M的虚拟 主机空间绝对能满足大家的绝大多数需求,而且能卖到这个价位的产品也是多如牛毛.就算本着价格相同

Windows平台上jsp虚拟主机环境的架设——Windows2003+IIS6+J2SDK1.4.2+Resin2.1.16

iis|js|window|windows2003|虚拟主机 平台上jsp虚拟主机环境的架设--Windows2003+IIS6+J2SDK1.4.2+Resin2.1.16 .abu. at Patching.net 发布于:2005年11月03日 记录于:2005年01月04日 今天,我生日,自己记性也不太好,顺手写一篇文章,省得不小心忘了. 我通常在Windows上工作,这次要架设jsp虚拟主机运行环境,查看了一下网上 所能找到的资料,基本没有能用的,因为我需要的是能够使IIS同时既支持.

Win2003平台上jsp虚拟主机环境的架设(IIS6+J2SDK+resin)_win服务器

平台上jsp虚拟主机环境的架设--windows2003+iis6+j2sdk1.4.2+resin2.1.16.abu. at patching.net 今天,我生日,自己记性也不太好,顺手写一篇文章,省得不小心忘了. 我通常在windows上工作,这次要架设jsp虚拟主机运行环境,查看了一下网上所能找到的资料,基本没有能用的,因为我需要的是能够使iis同时既支持.asp又支持.jsp而且又可以做虚拟主机. 互相隔离,且运行在80端口.反正搜索出一堆,参考一下,自己搞吧. 一个一个找,这里面需

Apache安装配置和虚拟主机配置教程

Apache 2.0 安装 相对IIS来说Apache建立站点更加专业,一些大型门户网站和流量大的专业站点都是通过Apache发布站点的.而且以往很多程序都是通过ASP语言完成的,ASP与IIS的兼容性比较好,那时IIS用户比较多.随着PHP语言的流行,越来越多的用户抛弃了ASP.相比IIS来说Apache与PHP的兼容性更好,执行代码的效率更高,运行起来也更加稳定. 第一步:下载Apache 2.0安装程序,并运行. 第二步:同意许可协议点"NEXT"按钮继续. 第三步:查看帮助信息

在Apache服务器上添加虚拟主机功能的方法_Linux

Apache 默认存放网页根目录,是在/var/www/html/下面,也就是说,默认情况下,一个服务器,只能跑一个网站.但是一台性能还算不错的服务器,如果只跑一个网站,岂不是有点浪费?其实 Apache 是支持虚拟主机功能的,以虚拟主机模式可以跑 N 个网站. Apache 开启虚拟主机功能的方式也很简单,以 CentOS 6.3 和 Apache 2.2 为例, 在 /etc/httpd/conf.d/ 目录下创建一个vhost.conf配置文件,内容格式如下: NameVirtualHos

Apache中Virtual Host虚拟主机配置及rewrite参数说明_Linux

Virtual Host配置过程 这里例子中我们的路径为这样 DocumentRoot: /home/jb51 /sites/demo.jb51.net ServerName:demo.jb51.net 1.进入apache虚拟主机设置目录 cd /etc/apache2/sites-available 2.创建文件demo.jb51.net <VirtualHost *:80> ServerAdmin webmaster@localhost DirectoryIndex index.html

apache配置php与虚拟主机失败解决办法

直使用xampp做apache服务器,可是新版的xampp添加了虚拟主机就访问127.0.0.1也跳转到了虚拟主机去了,比如:我添加了www.demo.com,路径是e:wwwdemo,而我的添加完之后,访问127.0.0.1竟然也是跑到了www.demo.com下面去. 上网找了好多资料说是添加localhost的,于是在httpd.conf最后添加如下配置:  代码如下 复制代码 <VirtualHost *>     DocumentRoot E:www     ServerName 1

为nginx设置默认虚拟主机(空主机头,默认主机头)_nginx

最关键的一点事,在server的设置里面添加这一行: listen 80 default; 后面的default参数表示这个是默认虚拟主机. 这个设置非常有用. 比如别人通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回500. 目前国内很多机房都要求网站主关闭空主机头,防止未备案的域名指向过来造成麻烦.就可以这样设置: 复制代码 代码如下: server { listen 80 default; return 500; } 也可以把这些流量收集起来,导入到自己的网

linux环境apache多端口配置虚拟主机的方法深入介绍_php技巧

默认情况下,linux上apache使用的默认文档目录是:/var/www默认端口是:80如果想发布自己的一个系统资源目录,可以使用下面的方法,执行如下命令:(1)添加监听端口#cd /etc/apache2#vim ports.conf文件添加:NameVirtualHost *:8000Listen 8000(2)配置虚拟目录#cd /etc/apache2/sites-available#cp default default-me#vim default-me文件内容如下: 复制代码 代码