跳转到主要内容

Buildout配方来安装squid

项目描述

受plone.recipe.varnish启发,plone.recipe.squid是一个zc.buildout配方,用于安装Squid

尽管名称包含“plone”,但此配方没有Plone特有的内容:它与非Zope站点一样工作。

配置非常简单。例如

[squid-build]
recipe = plone.recipe.squid:build
url = http://www.squid-cache.org/Versions/v2/2.6/squid-2.6.STABLE18.tar.gz

[squid-instance]
recipe = plone.recipe.squid:instance
bind = 127.0.0.1:3128
backends = 127.0.0.1:8080
cache-size = 1000

这配置了两个buildout部分:squid-build,它将下载、编译和安装Squid;以及squid-instance,它运行Squid,配置为监听127.0.0.1:3128的请求,使用1GB的缓存,并将请求发送到后端127.0.0.1:8080。

在您的buildout的bin目录中创建了Squid命令的包装器。

要启动Squid:./bin/squid-instance

要关闭Squid:./bin/squid-instance -k shutdown

虚拟主机

Squid通过根据传入请求的头部选择不同的后端服务器来支持虚拟主机。您可以通过后端选项配置后端

[squid-instance]
backends =
   plone.org:127.0.0.1:8000
   plone.net:127.0.0.1:9000

这将生成一个配置,将plone.org主机的所有流量发送到运行在8000端口的后端服务器,而所有发送到plone.net主机的流量则发送到9000端口。

Zope 2托管(使用虚拟主机怪物)

如果您正在使用Zope 2作为后端服务器,您需要重写URL,以便Zope虚拟主机怪物(VHM)可以为您的页面中的链接生成正确的链接。这可以通过另一个Web代理完成,例如Apache或nginx(位于Squid之前或之后),也可以通过Squid本身完成。

以下是对三种选项的描述。

选项1(在Squid之后重写)

如果在Squid之后的代理中生成这些VHM风格的URL(或如果使用VHM的“映射”功能),不需要额外的Squid配置。只需确保“后端”选项将流量导向代理即可。

选项2(在Squid之前重写)

如果在Squid之前的代理中生成这些VHM风格的URL,只要URL中仍然保留原始主机名,就不需要额外的Squid配置。如果未保留主机名,可以告诉Squid根据“路径”而不是主机名来定向请求。例如

[squid-instance]
backends =
  /VirtualHostBase/http/plone.org:80/Plone:127.0.0.1:8000
  /VirtualHostBase/http/plone.net:80/Plone:127.0.0.1:9000

这将生成一个配置,将所有以“/VirtualHostBase/http/plone.org:80/Plone”开头的请求的流量发送到运行在127.0.0.1的8000端口的后端服务器,而以“/VirtualHostBase/http/plone.net:80/Plone”开头的请求路径则发送到9000端口。

选项3(在Squid内部重写)

要使用Squid生成这些VHM风格的URL,可以使用zope2_vhm_map选项。以下是一个示例

[squid-instance]
zope2_vhm_map =
    plone.org:/plone
    plone.net:/plone

这表明域名plone.org应该映射到后端的/plone位置。通过结合来自backends选项的信息,将生成一个Squid配置,正确映射URL。注意:’zope2_vhm_map’选项假定由’host’进行委托,因此不要在同一配置中组合选项2和3。

plone.recipe.squid:build参考

plone.recipe.squid:build配方负责下载Squid,在您的系统上编译它,并将其安装到您的buildout中。

它可以配置以下任一选项

url

包含Squid源代码的存档的URL。必须指定urlsvn

svn

包含Squid源代码的子版本控制库的URL。必须指定urlsvn

squid-directory

共享Squid安装目录的位置。在构建多个Squid实例时很有用。共享的Squid构建可以存储在与buildout实例分开的位置。此指令必须在~/.buildout/default.cfg中定义,类似于“zope-directory”和“eggs-directory”指令。默认情况下,在buildout ‘parts’目录的子文件夹中构建Squid。

请注意,此配方生成的配置需要Squid 2.6.STABLE18或更高版本。它未与Squid 3.x进行测试。

plone.recipe.squid:instance参考

plone.recipe.squid:instance配方创建一个Squid配置文件,并在您的buildout中创建一个包装脚本,该脚本将以正确的配置启动Squid。

请注意,Squid不支持路径名中的空格,因此如果您的buildout路径包含任何空格,则此配方将不起作用。

此外,请注意,此配方生成的配置需要Squid 2.6.STABLE18或更高版本。它未与Squid 3.x进行测试。

Squid特定配置选项

default-hostname

如果请求缺少Host头,则使用默认主机名。仅在通过Host头委托后端且有可能从旧或有缺陷的客户端传入请求时需要。默认为“backends”下列出的第一个主机名。

visible-hostname

在squid生成的错误页面中显示的主机名。默认情况下,如果通过‘bind’指定,则为主机名;如果没有指定,则为‘default-hostname’的值

visible-email

在squid生成的错误页面中显示的电子邮件地址。

通用配置选项

daemon

要使用的squid守护进程的路径。默认情况下,在您的buildout内部为bin/squid,这是由plone.recipe.squid:build配方创建的可执行文件。

cache-size

缓存的大小(MB)。不要超过可用磁盘空间的90%。默认为1000 MB。

bind

Squid监听请求的主机名和端口。语法为[主机名][:端口]。默认为127.0.0.1:3128。如果省略主机名,则Squid将绑定到所有可用接口。

config

要使用的Squid配置文件的路径。如果您使用此选项,则不能使用backends或zope2_vhm_map选项。

backends

指定将处理(未缓存的)请求的后端或后端。后端语法

[<hostname>][/<path>]:<ip address>:<port>

可选的‘hostname’和‘path’允许您进行虚拟主机。如果指定了多个后端,则每个后端都必须包含主机名或路径(或两者都包含),以便Squid可以将匹配的请求定向到适当的后端。默认为127.0.0.1:8080。

zope2_vhm_map

为Zope服务器定义虚拟主机映射。这是一份指定虚拟主机所在位置的hostname:ZODB location条目列表。

user

Squid在接收任何请求之前切换到的用户名。默认为‘squid’。

group

Squid在接收任何请求之前切换到的用户组。默认为主机指定的用户的主要组。

报告错误或提出问题

在Launchpad上有一个共享的错误跟踪器和帮助台:https://bugs.launchpad.net/collective.buildout/

项目详情


下载文件

为您的平台下载文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。

源代码分发

plone.recipe.squid-1.0b1.tar.gz (15.3 kB 查看散列)

上传时间

构建分发

plone.recipe.squid-1.0b1-py2.4.egg (23.9 kB 查看散列)

上传时间

由以下支持