标签: haproxy

nginx 访问日志忽略某些请求

我在 haproxy 后面运行 nginx(在同一台服务器上运行)。我已将 haproxy 配置为在 nginx 上使用一个简单的 html 文件来验证服务是否已启动,因为我在此主机上没有/不想要有效的“/”URL。Nginx 不支持 OPTIONS 请求类型(据我所知)这是 haproxy 使用的默认值,因此我将其更改为 GET。

由于我在 nginx 中打开了访问日志,因此我在访问日志中收到了所有这些正常运行时间轮询请求。有没有办法可以将 nginx 配置为忽略某些请求,并跳过记录它们?

这是 haproxy 后端:

backend static_http
        option  httpchk GET /test.html
        option  redispatch
        balance roundrobin
        #fullconn 1000
        server  w1_static www1:81 check port 81 inter 2000
Run Code Online (Sandbox Code Playgroud)

这是我在 nginx 日志中看到的:

127.0.0.1 - - [24/Jul/2009:19:28:22 +0000] "GET /test.html HTTP/1.0" 200 12 "-" "-"
127.0.0.1 - - [24/Jul/2009:19:28:24 +0000] "GET /test.html HTTP/1.0" 200 12 "-" "-"
127.0.0.1 - - [24/Jul/2009:19:28:26 +0000] "GET /test.html HTTP/1.0" 200 …
Run Code Online (Sandbox Code Playgroud)

nginx log-files haproxy

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

Windows 2008 Server 上的死网关检测

我们最近为 stackoverflow.com 实施了 HAProxy。我们决定使用 TProxy 来维护客户端连接的源地址,因此我们的日志和其他依赖于客户端 IP 地址的 IIS 模块不需要修改。因此,数据包以欺骗方式到达,就好像它们来自外部 Internet IP 地址一样,而实际上它们来自我们本地网络上的本地 192.168.xx HAProxy IP。

我们的两个 Web 服务器都有两个 NIC - 一个公共互联网上的可路由 B 类地址,具有静态 IP、DNS 和默认网关,另一个私有不可路由的 C 类地址配置了指向 HAProxy 专用 IP 的默认网关。HAProxy 有两个接口——一个公共接口和一个私有接口,负责在接口之间透明地路由数据包并将流量引导到适当的 Web 服务器。

以太网适配器 Internet:

   描述 。. . . . . . . . . . : 网卡#1
   DHCP 启用。. . . . . . . . . . : 不
   自动配置已启用。. . . : 是的
   IPv4 地址。. . . . . . . . . . …

networking windows-server-2008 tcpip haproxy

9
推荐指数
2
解决办法
7672
查看次数

有没有办法将 HAProxy 配置为基于 cookie 发送流量?

在配置 HAProxy 时,我想根据 cookie 的存在将流量发送到某些服务器。

例如:

  1. 有一个 HAProxy 服务器和 2 个 Web 服务器(serverA 和 serverB)。
  2. 当有人登录时,会创建一个 cookie“loginCreds=user:company”。
  3. 当来自 CompanyA 的 John 进来时,他的 cookie 是“loginCreds=John:CompanyA”。
  4. 然后他的流量将被定向到 serverA。

这可能吗,如果可能,您如何设置?

cookies haproxy

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

为什么没有水平可扩展的软件负载平衡器平衡 ssl 的例子?

我有一堆关于 ssl、本地会话和负载平衡的问题,它们似乎是相互关联的,所以我提前为这个问题的长度道歉。

我有一个使用基于文件的会话的网站。该站点的性质是大部分是http,但有些部分是ssl。目前,由于基于文件的会话,任何 ssl 请求都需要与以前的任何 http 请求访问相同的服务器。

由于时间限制,我想做最简单的事情来负载平衡增加的 http 和 ssl 流量。

粘性负载平衡算法似乎有两种选择:

  • 基于IP
  • 基于cookie

基于 ip 的解决方案可能会起作用,但散列算法可能会在服务器关闭或添加时更改用户访问的服务器,这对于当前基于文件的会话设置是不合需要的。我还假设用户在浏览网站时合法地更改 ip 在技术上是可能的。

基于 cookie 的算法似乎更好,但是在通过 ssl 加密时无法检查 cookie 似乎存在其自身的问题。

我一直在搜索有关如何对 ssl 进行负载平衡的示例,但似乎找不到任何明确的设置示例,这些示例可以执行基于 cookie 的负载平衡,并且可以通过添加另一个 ssl 解码器来处理增加的 ssl 负载。

我见过的大多数显式示例都有位于浏览器客户端和负载均衡器之间的 ssl 解码器(通常是硬件、apache_mod_ssl 或 nginx)。这些示例通常看起来像这样(从http://haproxy.1wt.eu/download/1.3/doc/architecture.txt修改):

      192.168.1.1 192.168.1.11-192.168.1.14
 -------+-----------+-----+-----+-----+
        | | | | |       
     +--+--+ +-+-+ +-+-+ +-+-+ +-+-+    
     | LB1 | | 一个 | | 乙 | | C | | D |    
     +-----+ +---+ +---+ +---+ +---+    
     apache 4 便宜的网络服务器
     mod_ssl …

ssl nginx load-balancing haproxy

9
推荐指数
2
解决办法
3524
查看次数

如何在 HAProxy 中阻止 IP 地址?

haproxy 中是否有类似 Apache 的“拒绝 ip”之类的东西?

haproxy deny apache-2.2

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

使用 Nginx 或 HA 代理作为负载均衡器的优势

在我们的环境中,我们在不同的集群上同时使用 Nginx 和 HA 代理。使用一种比另一种有优势吗?

或者,对基本 LAMP 服务器集群进行负载平衡的最佳方法是什么?

cluster nginx lamp load-balancing haproxy

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

haproxy - 在 tcp 模式下传递原始/远程 IP

我已经使用 keepalived 设置了 haproxy,用于 percona 集群的负载平衡和 ip 故障转移,并且由于它工作得很好,我想对另一个服务/守护程序使用相同的 lb / 故障转移。

我已经这样配置了 haproxy:

listen my_service 0.0.0.0:4567
    mode tcp
    balance leastconn
    option tcpka
    contimeout      500000
    clitimeout      500000
    srvtimeout      500000

    server host1 xxx.xxx.xxx.xx1:4567 check port 4567 inter 5000 rise 3 fall 3
    server host2 xxx.xxx.xxx.xx2:4567 check port 4567 inter 5000 rise 3 fall 3
Run Code Online (Sandbox Code Playgroud)

负载平衡工作正常,但服务看到的是负载平衡器的 IP,而不是客户端的实际 IP。在 http 模式下,让 haproxy 传递远程 IP 很容易,但是在 tcp 模式下我该怎么做?由于我需要负载平衡的服务的性质,这很关键。

谢谢!维托

load-balancing haproxy

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

使用 URL 参数通过 HAProxy 进行负载平衡

我有一个通过 cookie 进行负载平衡的系统,但我想使用 URL 参数作为替代。(具体来说,我有一个不支持 cookie 的前端应用程序)。我的设置有点复杂 - 我有一个多人游戏系统,我使用带有这个 cookie 的棒桌来确保玩同一个游戏的不同人去同一个服务器。这很好用,除了 URL 参数似乎没有做任何事情。这都是haproxy 1.5dev17

我的相关后端是:

defaults
   log            global
   mode           http
   option         httplog
   option         dontlognull
   retries        3
   option         redispatch
   option         http-server-close

   maxconn        2000
   contimeout     5000
   clitimeout     50000
   srvtimeout     50000

backend simulate
    option httpchk OPTIONS /simulate/api/status
    stick-table type string len 40 size 5M expire 30m
    stick store-response set-cookie(SIMULATE_STICKY_SESSION) table simulate
    stick on cookie(SIMULATE_STICKY_SESSION) table simulate
    stick on url_param(SIMULATE_STICKY_SESSION) table simulate

    server app1 10.0.2.11:8080  cookie app1 check inter 10000
    server app2 10.0.3.11:8080  cookie …
Run Code Online (Sandbox Code Playgroud)

haproxy sticky-sessions

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

HAproxy 503 Service Unavailable 没有可用的服务器来处理这个请求

我是这种负载平衡方案的新手,我的任务是弄清楚如何使这种负载平衡起作用。

我的环境:

Centos 6.4 64 Bit
Webserver: Lighttpd
All running in ESXI
virtual IP: 192.168.1.6
LB1: 192.168.1.4
LB2: 192.168.1.5
Webserver 1: 192.168.1.12
Webserver 2: 192.168.1.13
Gateway: 192.168.1.1
Run Code Online (Sandbox Code Playgroud)

尝试在使用 HAproxy 和 keepalived 生产之前在实验室中运行测试。这是我的 keepalived 设置:

!keepalived的配置文件

global_defs {
   notification_email {
     myemail@gmail.com
   }
   notification_email_from keepalived@domain.local
   smtp_server 192.168.1.4
   smtp_connect_timeout 30
   router_id 192.168.1.1
}

vrrp_script chk_haproxy {
script "killall -0 haproxy"
interval 1                     # check every second
weight 2                       # add 2 points of prio if OK
}

vrrp_instance VI_1 {
    state MASTER
    interface …
Run Code Online (Sandbox Code Playgroud)

load-balancing lighttpd haproxy keepalived centos6.4

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

为超过 64k 个 websocket 扩展 HAProxy

我们正在尝试设计一种能够处理超过 64k 个 websocket 的架构。

我们首先尝试使用 Amazon ELB,但它的设计不允许意外的流量激增或 websocket。(TCP 模式意外超时 websockets)

使用 HAProxy,这些限制不适用,但我们将被限制在 HA 和后端服务器之间维护的 ~64k websockets。

想到的多种解决方案:

  • 多个 HAProxy 实例,使用 DNS 进行负载均衡(Route53 有一个加权选项)
  • 两个带有 Keepalived 的 HAProxy 实例,多个内部 IP 地址(不确定是否可行)

有一个更好的方法吗 ?

domain-name-system scalability load-balancing haproxy websocket

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