小编Mar*_*ski的帖子

HAProxy URL 重写 40​​4 错误

当第一个缺少文件时,如何使 HAProxy 重写到不同的后端?我需要的是errorloc进行重写而不是重定向,因此客户端不知道重定向。

我们开发了一个考虑到 NginX 的应用程序,它既是负载平衡反向代理,也是静态文件的 Web 服务器。应用程序基于Opa框架,该框架需要基于 cookie 的粘性会话 - NginX 和 HAproxy 都支持。我们遇到问题的应用程序功能是动态内容生成。它按需生成图像,但生成后将其保存在磁盘上,并且可以通过确定性路径静态访问。

问题很容易用 NginX 解决 - 它尝试读取本地文件并仅在文件丢失(尚未生成)时才使用负载平衡后端:

server {
  server_name wkaliszu.pl;
  location /thumb {
    root /path_on_disk/to_cached_content;
    expires 7d;
    # try to access already generated content
    try_files $uri @wkaliszu;
  }
  location / {
    # reverse proxy to the application
    [...]
  }
  location @wkaliszu {
    # reverse proxy to the application
    [...]
  }
}
Run Code Online (Sandbox Code Playgroud)

服务器已迁移,现在使用 HAPproxy 进行负载均衡,它不是 Web 服务器,不支持此功能。现在每次客户端尝试访问资源时都会执行动态软件生成,这样会慢得多并且浪费资源。如果第一个(静态文件的简单缓存 Web 服务器)失败并显示错误 404,如果它可以使用下一个后端就好了,但我找不到一种简单的方法。重定向/thumb到 NginX,它尝试读取静态文件并再次使用新的 …

nginx haproxy

9
推荐指数
1
解决办法
2002
查看次数

标签 统计

haproxy ×1

nginx ×1