AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 32194
In Process
Manish V
Manish V
Asked: 2009-06-27 06:23:41 +0800 CST2009-06-27 06:23:41 +0800 CST 2009-06-27 06:23:41 +0800 CST

HAProxy 和“分片”

  • 772

我从堆栈溢出中交叉发布这个,因为有人建议我可能会在这里得到更好的答案......

我想知道是否有人使用 HAProxy 进行分片。具体来说,我希望能够使用我定义的带有标识符的 cookie,并将任何呈现该 cookie/标识符组合的客户端定向到同一服务器。这似乎是可能的,我的初步测试似乎有效,但我不确定。

我的监听配置如下:

listen  appli1-rewrite 0.0.0.0:80
cookie  mysession= prefix
balance roundrobin
server  app1_1 192.168.0.1:80 cookie server01
server  app1_2 192.168.0.2:80 cookie server02
option  httpclose

但是,当我使用 Live Http Headers 查看请求标头时,我看不到 mysession cookie 指示它将去哪个服务器,这是我基于前缀操作所期望的。我对 HAProxy 很陌生,所以任何帮助/指导都会很棒!

scaling haproxy
  • 5 5 个回答
  • 2056 Views

5 个回答

  • Voted
  1. Willy Tarreau
    2009-07-16T21:01:40+08:002009-07-16T21:01:40+08:00

    首先,删除 cookie 名称后的等号,否则永远不会匹配。其次,请确保您的服务器正确设置“mysession”cookie,因为cookie前缀模式依赖于服务器设置cookie。如果没有,请改用插入模式。第三,请在您的配置中添加“选项 httpclose”,因为如果有任何类型的 keepalive,haproxy 将看不到 cookie(或无法破坏它)。

    希望这会有所帮助,
    威利

    • 3
  2. Willy Tarreau
    2009-06-28T13:17:09+08:002009-06-28T13:17:09+08:00

    你的配置没问题。您可以在日志中检查客户端提供的 cookie 是否已被识别和使用。它将字母“V”放在 4 字符状态标志的第一个位置(例如:VN--)。没有有效 cookie 的第一个请求将改为使用“N”。请查看文档以获取更多信息,您将在第 8.5 节中获得所有信息。您还可以启用统计页面并在浏览时检查它们。您应该会看到,“LbTot”列对于每个新客户端仅增加一次,并且对于同一客户端不再增加。

    • 2
  3. Maxwell
    2009-06-27T06:39:07+08:002009-06-27T06:39:07+08:00

    您可以在侦听部分尝试捕获 cookie 功能(全部取决于所服务的应用程序),请参阅:http ://haproxy.1wt.eu/download/1.3/doc/configuration.txt :

    仅捕获第一个 cookie。“cookie”请求标头和“set-cookie”响应标头都受到监控。这对于检查导致用户之间的会话交叉或窃取的应用程序错误特别有用,因为通常用户的 cookie 只能在登录页面上更改。

    示例:捕获 cookie ASPSESSION len 32


    顺便说一句,您的配置似乎还可以。

    • 1
  4. nixgeek
    2009-06-29T01:21:29+08:002009-06-29T01:21:29+08:00
    listen corporate_web_live
      bind 1.2.3.4:80  # site1.com
      bind 1.2.3.5:80  # site2.com
        option httpchk HEAD /server.txt HTTP/1.0
        cookie HAPSRV insert postonly indirect
        server webapp-corp-1 10.0.0.1:80 weight 50 maxconn 150 slowstart 30s cookie WAC1 check
        server webapp-corp-2 10.0.0.2:80 weight 50 maxconn 150 slowstart 30s cookie WAC2 check
        server webapp-corp-3 10.0.0.3:80 weight 50 maxconn 150 slowstart 30s cookie WAC3 check
        server webapp-corp-4 10.0.0.4:80 weight 50 maxconn 150 slowstart 30s cookie WAC4 check
        server webapp-corp-5 10.0.0.5:80 weight 50 maxconn 150 slowstart 30s cookie WAC5 check
        server webapp-corp-6 10.0.0.6:80 weight 50 maxconn 150 slowstart 30s cookie WAC6 check
    

    请注意上面示例中“插入”、“后置”和“间接”的使用——这会导致 HAproxy 根据需要将 cookie 插入到遍历它的流中。

    • 1
  5. Manish V
    2009-06-27T09:41:25+08:002009-06-27T09:41:25+08:00

    我尝试了 cookie 捕获,它与实时 http 标头显示的内容没有任何区别...当我更改配置以使 haproxy 插入自己的 cookie 时,我可以在 http 标头中看到它...我开始了相信我最初的测试可能有问题。

    • 0

相关问题

  • 如何在 IIS7 上启用异步模块/Http

  • 什么限制了 Linux 服务器上的最大连接数?

  • 我的网络服务器应该能够处理多少个请求?

  • 多个 Web 服务器共享一个数据库服务器

  • 哪个数据库服务器扩展性更好:PostgreSQL 还是 MySQL?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve