小编sca*_*a05的帖子

Apache 缓存服务部分内容 206 响应对完整内容的请求

我们使用 mod_cache 在 Apache 2.2.19 后面运行 Plone 3.3.6。我们最近注意到 Apache 正在缓存对范围请求的 206 响应,然后在发出对完整资源的请求时提供该部分响应。

似乎发生了什么:

  • 某些客户端对尚未在缓存中或在缓存中但已过期的资源发出范围请求
  • Apache 正确提供 206 响应
  • 另一个客户端向同一资源发出标准请求
  • Apache 为第二个客户端提供相同的 206 响应:它应该为整个响应提供 200

这偶尔会导致我们在某些网站上的 css 出现问题

我可以始终如一地复制这一点:我编写了一个小 Python 脚本来发出范围请求。

我认为我们的 Apache 配置没有做任何不寻常的事情。我们使用反向代理配置来提供来自 Plone 的页面。mod_cache相关的Apache配置如下:

CacheEnable disk /
CacheDisable /static
CacheDisable /sitemap.xml.gz
CacheDisable /robots.txt
CacheIgnoreHeaders Set-Cookie

UseCanonicalName On

RequestHeader edit Accept-Encoding ^.*gzip.*$ gzip early
RequestHeader edit Accept-Encoding ^(?!gzip).*$ "" early
Run Code Online (Sandbox Code Playgroud)

Apache的缓存导不包括在响应“必须有”为它缓存状态代码表206级的响应。这是 Apache 中的错误还是我们在配置中做错了什么?

cache plone mod-cache apache-2.2

7
推荐指数
1
解决办法
3950
查看次数

间歇性 munin-cron 错误“这里无事可做,因为没有带有任何插件的节点”

我们在其中一台服务器上安装了 munin 监控。一般来说,它似乎运行良好,但有时,准确地说是 2 个月内 4 次,munin-cron 会产生以下错误:

[致命] 这里没有什么可做的,因为没有带有任何插件的节点。请参阅http://munin-monitoring.org/wiki/FAQ_no_graphs在 /usr/share/munin/munin-html 第 38 行

在搜索此错误时,我只能找到 munin 根本无法工作的问题,而不是我们面临的间歇性问题。

一些帮助防止此错误或如何调试它将不胜感激。

我们正在运行 CentOS 5.5,使用 yum 安装的 Munin 1.4.5。

linux monitoring munin centos system-monitoring

6
推荐指数
1
解决办法
689
查看次数

允许一个组的所有用户使用 supervisorctl 启动和停止 zope

我只是根据最近的安全公告对我们运行 Zope 的方式进行了一些更改。在咨询中它说:

“确保 Zope/Plone 服务以最低权限运行。理想情况下,Zope 和 ZEO 服务应该只能写入日志和数据目录。”

目前我们有一个专门的 linux 用户运行 buildout,启动和停止服务器并运行 Zope 服务。我们使用supervisord来管理我们并行运行的两个 Zope 实例(relstorage 后端)。

我们当前的 zope 用户需要的不仅仅是日志和数据目录的写权限,以便它可以运行 buildout,所以我选择创建一个额外的 linux 用户 zoperun 来实际运行 zope 服务。zoperun 与 zope 在同一个组中,并且只有对 var 目录的写权限。除了一件事之外,这一切都很好:我希望原始 zope 用户能够使用 supervisorctl 启动和停止 zope 实例。

我不能让这个工作。例如,当我尝试运行时,bin/supervisorctl status我得到

错误:,[Errno 13] 权限被拒绝:文件:行:1

我认为这是因为主管套接字没有组读写权限

srw------- 1 zoperun zopeour 0 Sep 30 09:00 supervisor.sock

我已经umask = 002在 supervisord 配置中进行了设置,但这对这个 superctl 套接字没有影响。

有什么办法可以实现我想要的吗?

linux permissions plone zope supervisord

2
推荐指数
1
解决办法
4020
查看次数

当所有后端服务器都在 Apache 后面运行 HAProxy 时,获取 502 而不是 503

我正在测试运行 HAProxy 作为 Apache 2.2 后面的专用负载均衡器,替换我们当前使用 Apache 负载均衡器的配置。在我们当前的 Apache 设置中,如果所有后端(源)服务器都关闭,Apache 将提供 503 服务不可用消息。使用 HAProxy,我得到 502 错误的网关响应。

我在 Apache 中使用了一个简单的反向代理重写规则

RewriteRule ^/(.*) http://127.0.0.1:8000/$1 [last,proxy]
Run Code Online (Sandbox Code Playgroud)

在 HAProxy 我有以下(在默认 tcp 模式下运行)

defaults
    log             global
    option          tcp-smart-accept
    timeout connect 7s
    timeout client  60s
    timeout queue   120s
    timeout server  60s

listen my_server 127.0.0.1:8000
    balance leastconn
    server backend1 127.0.0.1:8001 check observe layer4 maxconn 2
    server backend1 127.0.0.1:8001 check observe layer4 maxconn 2
Run Code Online (Sandbox Code Playgroud)

在后端服务器关闭时测试直接连接到负载均衡器:

[root@dev ~]# wget http://127.0.0.1:8000/ test.html
--2012-05-28 11:45:28--  http://127.0.0.1:8000/
Connecting to 127.0.0.1:8000... connected.
HTTP …
Run Code Online (Sandbox Code Playgroud)

reverse-proxy load-balancing haproxy apache-2.2

2
推荐指数
1
解决办法
2453
查看次数