Squid反向代理:维护模式

目前我正在尝试configuration我的鱿鱼(3.1)反向代理总是显示一个静态网页,当唯一的后端Web服务器正在维护。 不需要自动切换。 维护模式应通过手动configuration更改激活。

鱿鱼文档和维基在这一点上并没有真正的帮助。 我的想法是阻止每个请求,并显示一个静态网页作为deny_info与200状态代码,如下所示:

 acl everyone src 0.0.0.0/0.0.0.0 ## Testing with my client ip address: # acl everyone src 10.123.0.40/32 http_access deny everyone deny_info 200:/etc/squid/maintenance.html everyone 

我把这个片段放在任何其他的http_access规则之前 ,只通过阻止我自己的客户端stream量来尝试configuration,但是使用squid -k reconfigure没有效果。 当我使用sudo service squid restart时,它可能会工作,但是我现在不想testing它,因为当时有很多用户使用这个服务和一个squid重启需要大约半分钟的时间(对于每个testing)。

我的问题:

  1. 那个configuration正确吗?
  2. 我是否需要使用sudo service squid restart才能使更改生效或出现简单的问题?
  3. 有没有更好的解决scheme来显示静态维护页面?

提前致谢。

  • 鱿鱼3.1.x就像一千年前。
  • 鱿鱼3.x完全失去了软重新configuration的能力,因此它需要重新启动应用configuration更改。 这意味着您将失去与该网站的客户端连接。 每一次它将像一个闪光DoS。

总之:这使得鱿鱼不适合在生产环境中用作网站的反向代理。 考虑使用nginx

如果尽pipe有这些警告,你仍然打算继续使用鱿鱼,那么你应该写一个redirect程序来检查一个诱饵页是否有效,以消除重启问题。 这个redirect器可以使用你知道的任何脚本语言来编写:perl,python,ruby,甚至是/bin/sh 。 逻辑很简单:如果应该显示诱饵页面,redirect器将检查一些符号(例如文件标志),如果不是的话 – 它将简单地将请求传递到后端。 它甚至可能会检查这种后端的可行性。

但是nginx具有开箱即用的function。