Haproxy - 在 Heroku 上使用 monitor-uri

Haproxy - 在 Heroku 上使用 monitor-uri

我们在 heroku 上使用 haproxy 在我们所有的各种微服务(也在 heroku 上)之间进行路由,因此我们在配置中只需要一个 url。

我正在尝试使用这个技巧:

http://discourse.haproxy.org/t/how-do-i-serve-a-single-static-file-from-haproxy/32

提供一个 robots.txt 来禁止所有内容搜索我们的 API(所有身份验证均受保护;这是为了性能而不是安全原因)。

这似乎是最轻量级的方法,而且在本地运行良好(通过“heroku local”启动)。但是,在我们的实际 heroku 环境中访问 /robots.txt 会出现 503 服务器响应中断。

haproxy.cfg 代码片段:

frontend http-in
 bind *:"${PORT}"
 monitor-uri /robots.txt
 errorfile 200 "${STATIC_PATH}/robots.http"
 errorfile 503 "${STATIC_PATH}/robots.http"

其中 STATIC_PATH 在 heroku 中定义为“/app/static”。

静态/robots.http:

HTTP/1.0 200 Found
Cache-Control: no-cache
Connection: close
Content-Type: text/plain

User-Agent: *
Disallow: /

我知道 haproxy 正在查找 robots.http,因为如果我将环境变量设置为无效路径,haproxy 就会拒绝启动。根据文档,它应该将此响应保存在内存中,并在 monitor-uri 匹配时提供该响应。

如果删除“errorfile 200”行,haproxy 将返回其默认服务器 OK 页面,因此 monitor-uri 正确匹配,并且 200 是它尝试返回的响应。

出现“errorfile 503”条目的原因是: http://comments.gmane.org/gmane.comp.web.haproxy/19803 但这并没有什么区别。

还有其他建议吗?之前有人尝试过吗?

谢谢,B

相关内容