标签: haproxy

如何使用 HAProxy 根据主机名转移流量?

我在 HAProxy 设置了一堆侦听其他各种端口的应用程序服务器方面取得了一些初步成功。

我现在有另一个网络服务器在一个端口上侦听,我想对我的配置进行哪些更改以按主机名传输流量。

以下是当前设置,假设:

  • 我的 apache 网络服务器在 examplecom:8001 上运行
  • 我的一堆应用服务器 0.0.0.0:8081, 0.0.0.0:8082 , 0.0.0.0:8083
global
  log 127.0.0.1 local0
  log 127.0.0.1 local1 notice
  maxconn 4096
  debug
  #quiet
  #user haproxy
  #group haproxy

defaults
  log global
  mode  http
  option  httplog
  option  dontlognull
  retries 3
  redispatch
  maxconn 2000
  contimeout  5000
  clitimeout  50000
  srvtimeout  50000

listen appservers 0.0.0.0:80
  mode http
  balance roundrobin
  option httpclose
  option forwardfor
  #option httpchk HEAD /check.txt HTTP/1.0
  server  inst1 0.0.0.0:8081 cookie server01 check inter 2000 fall  3
  server  inst2 0.0.0.0:8082 …
Run Code Online (Sandbox Code Playgroud)

ubuntu proxy load-balancing hostname haproxy

18
推荐指数
1
解决办法
3万
查看次数

haproxy 并将客户端 IP 地址转发到服务器

我有 HAproxy 的问题。

我使用 HAproxy 作为负载均衡器,它将传入的 http 请求分发到 5 个 Web 服务器。通常,客户端请求会通过负载均衡器的 IP 转发到 Web 服务器。但是我需要从 Web 服务器请求某些内容的客户端 IP 或真实 IP。因为我们需要记录真实客户端的 IP。

我尝试在 Web 服务器上获取客户端的 IP,但到目前为止我无法成功。我总是看到负载均衡器的 IP。

我使用 x-forward-for 选项,但没有解决问题。之后,我找到了另一个选项“ source 0.0.0.0:80 usesrc clientip ”,但在尝试运行 HAproxy 时出错,这是关于使用 HAproxy 的 USE_TPROXY 选项的编译需求。我做到了,我用 USE_TPROXY 选项重新编译了 HAproxy,但没有改变任何东西。我该怎么做才能了解真实客户的 IP。

我的 linux 内核版本是 2.6.32-34 我的意思是内核支持透明代理。我使用 UBUNTU 10.4 LTS

我的配置文件在这里

global
    maxconn 100000
    uid 99
    gid 99
    daemon

defaults
    option forwardfor except 127.0.0.1
    mode    http
    (1)source 0.0.0.0:80 interface hdr_ip(x-forwarded-for,-1)
        (2)source 0.0.0.0:80 usesrc clientip
    contimeout  5000
    clitimeout …
Run Code Online (Sandbox Code Playgroud)

haproxy

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

HAProxy HTTP 与 TCP

HAProxy 为您提供了将模式设置为 TCP 或 HTTP 的选项。它还允许您设置端口。

那么为什么允许我在 HTTP 和 TCP 之间进行选择,如果它也让我选择端口呢?当然,如果我想要 HTTP,我可以只选择 TCP 和端口 80?

为什么只有 TCP 和 HTTP?似乎暗示 HTTP 不是 TCP。为什么没有 TCP、HTTP、SNMP、FTP 等等等等。

为什么只是 HTTP 和 TCP?如果 HTTP 是 TCP,为什么要选择这两个选项中的任何一个?发现很混乱,真的很难找到任何关于负载均衡非http(s)服务的信息。

haproxy

18
推荐指数
2
解决办法
4万
查看次数

有没有办法在不重新启动 haproxy 的情况下向 haproxy 添加更多后端服务器?

我们希望能够按需添加更多后端服务器。现在我没有看到一种方法可以在不重新启动 haproxy 的情况下将更多后端服务器添加到配置文件中。

scaling load-balancing haproxy

17
推荐指数
2
解决办法
7787
查看次数

如何根据 URL 子字符串发出 haproxy 路由请求?

负载平衡器设置有两个后端。

请求 URI 将如下所示:

http://example.com/answers/submit
http://example.com/tag-02/answers/submit
Run Code Online (Sandbox Code Playgroud)

如何根据请求 URI 的格式,以将请求发送到两个后端中的一个或另一个的方式配置 haproxy?请求之间的唯一区别在于/tag-02/请求 URI。

对此有一些解释的 haproxy 配置文件将不胜感激,因为我是 haproxy 的新手。

haproxy

17
推荐指数
1
解决办法
5万
查看次数

在 CentOS 6.3 上安装 HAProxy?

这是一个奇怪的。

我已经通过以下方式安装了 CentOS 6 的 EPEL

# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Run Code Online (Sandbox Code Playgroud)

尝试安装 HAProxy:

# yum update
# yum install haproxy
Run Code Online (Sandbox Code Playgroud)

但收到:

Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: ftp.heanet.ie
 * epel: fedora.mirror.nexicom.net
 * extras: ftp.heanet.ie
 * updates: ftp.heanet.ie
Setting up Install Process
No package haproxy available.
Error: Nothing to do
Run Code Online (Sandbox Code Playgroud)

不明白为什么找不到haproxy!帮助?

rpm repository haproxy epel

17
推荐指数
2
解决办法
1万
查看次数

当没有 acls 匹配时,从 HAProxy 提供 404

我目前正在使用 1.5dev-17 重新配置 HAProxy。我想做的是在没有后端用于特定请求时返回 404 错误。

我们当前的配置使用 default_backend 路由到我们的 django 应用服务器,但是当有大量探测请求(如笔测试)与其他配置的后端都不匹配时,我们的 django 服务器在尝试时会停止为这些无效请求提供服务,最终返回 404。

我想从 HAProxy 提供 404,而不是委托给 django 后端。我目前正在通过黑客实现这一目标:

frontend www
    ...
    default_backend nomatch

backend nomatch
    errorfile 503 /var/www/http/404.http
Run Code Online (Sandbox Code Playgroud)

在 404.http 文件中,我在标题中设置了 404 状态代码。这有效,但感觉非常错误。使用 HAProxy 有没有更好的方法来实现这一点?或者我应该使用常规后端并让它处理 404 响应?

haproxy http-status-code-404

17
推荐指数
2
解决办法
2万
查看次数

强制 HAProxy 为后端服务器查找 DNS

我有 haproxy 1.5.8,它将一些请求(基于路径)代理给我们无法控制的第三方。

由于后端服务器的IP在启动时是一次性解析的,如果IP改变就会中断。

如果有解决方法吗?在 nginx 中,可以声明一个内部变量并将其缓存 X 秒。我没有为 HAProxy 找到类似的解决方案。

domain-name-system haproxy

17
推荐指数
2
解决办法
3万
查看次数

HA 代理 - roundrobin 与 leastconn

有什么关于什么时候应该使用roundrobin和什么时候使用的建议leastconn吗?

roundrobin目前正在使用并观察到我的后端服务器的负载分布不均匀。当然可能还有其他问题,但我们想leastconn尝试一下,但由于它是一个关键任务服务器,我想在进行更改之前咨询其他经验。

有什么想法可以分享吗?

load-balancing haproxy high-load

16
推荐指数
2
解决办法
2万
查看次数

haproxy 日志记录到系统日志

ppa:vbernat/haproxy-1.5根据http://haproxy.debian.net/在 ubuntu 14.04 上通过 apt-get 安装了 haproxy 1.5

问题是它登录/var/log/syslog而不是/var/log/haproxy.log

设置基本上是默认设置:

/etc/haproxy/haproxy.cfg

global
    log /dev/log    local0
    log /dev/log    local1 notice
    chroot /var/lib/haproxy
    stats socket /run/haproxy/admin.sock mode 660 level admin
    stats timeout 30s
    user haproxy
    group haproxy
    daemon

    # Default SSL material locations
    ca-base /etc/ssl/certs
    crt-base /etc/ssl/private

    # Default ciphers to use on SSL-enabled listening sockets.
    # For more information, see ciphers(1SSL).
    ssl-default-bind-ciphers kEECDH+aRSA+AES:kRSA+AES:+AES256:RC4-SHA:!kEDH:!LOW:!EXP:!MD5:!aNULL:!eNULL
        ssl-default-bind-options no-sslv3

defaults
    log global
    mode    http
    option  httplog
    option  dontlognull …
Run Code Online (Sandbox Code Playgroud)

logging syslog haproxy rsyslog

16
推荐指数
3
解决办法
15万
查看次数