是否有一个简单的方法来disable所有后端haproxy,而是提供一个适当的维护页面(http请求)?
我已经读了一些关于dissabled选项,我明白是每个服务器,但我想知道是否有一种方法可以简单地停止所有后端的stream量?
backup
关键字是我们用于这个。 看到这个例子:
listen example_com 0.0.0.0:8001 ... option httpchk OPTIONS * HTTP/1.1\r\nHost:\ www.example.com\r\nUser-Agent:\ HAProxy server web01 10.1.31.21:80 cookie cookie_web01 check inter 5000 rise 2 fall 5 disabled server web02 10.1.31.22:80 cookie cookie_web02 check inter 5000 rise 2 fall 5 disabled server prx 10.1.31.10:9000 backup
这里两台服务器web01
和web02
都被设置为disabled
,在这种情况下,将使用10.1.31.10:9000上的backup
服务器prx,它提供维护页面。 在我们的例子中,prx服务器本身就是HAProxy服务器,在端口9000上运行一个Apache HTTPD,提供维护内容:
<VirtualHost *:9000> ServerName example.com ServerAdmin [email protected] DocumentRoot /var/www/example.com/errors/ <Directory /var/www/example.com/errors/> Options -Indexes </Directory> RewriteEngine On RewriteCond %{DOCUMENT_ROOT}/systemDown.html -f RewriteCond %{SCRIPT_FILENAME} !systemDown.html RewriteRule ^.*$ /systemDown.html [R=503,L] ErrorDocument 503 /systemDown.html </VirtualHost>
怎么样redirect或redir
一个简单的redir例子
server srv1 10.0.0.10:80 redir http://maintenance.domain.com check
redirect可以全部设置为默认选项。
这个博客文章帮助了我: https : //rimuhosting.com/knowledgebase/creating-a-maintenance-page-for-your-site
它build议设置/定制503error handling程序:
errorfile 503 /var/www/503maintance.html
注意 :您需要在error handling程序文件中包含http头文件:
HTTP/1.0 503 Service Unavailable Cache-Control: no-cache Connection: close Content-Type: text/html