Nginx HAproxy健康检查底层应用程序

Nginx HAproxy健康检查底层应用程序,nginx,haproxy,Nginx,Haproxy,我在3台服务器上使用NGINX代理对应用程序进行密码保护。nginx在服务器上保留端口80,应用程序在本地主机端口x上运行。nginx fwds从客户端向端口x发出请求,请求命中vip:vipport 我在服务器1上有一个vip,keepalived和haproxy在所有3台服务器上对端口80进行LB和健康检查。我正在查看界面,取下应用程序不会使服务器行变红,因为nginx端口仍然处于打开状态。。ha是否有办法准确表示关闭的应用程序端口 #----------------------------

我在3台服务器上使用NGINX代理对应用程序进行密码保护。nginx在服务器上保留端口80,应用程序在本地主机端口x上运行。nginx fwds从客户端向端口x发出请求,请求命中vip:vipport

我在服务器1上有一个vip,keepalived和haproxy在所有3台服务器上对端口80进行LB和健康检查。我正在查看界面,取下应用程序不会使服务器行变红,因为nginx端口仍然处于打开状态。。ha是否有办法准确表示关闭的应用程序端口

#---------------------------------------------------------------------
# Example configuration for a possible web application.  See the
# full configuration options online.
#
#   http://haproxy.1wt.eu/download/1.4/doc/configuration.txt
#
#---------------------------------------------------------------------

#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global


    log         127.0.0.1 local0 notice         # only send important events

    chroot      /var/lib/haproxy.app
    pidfile     /var/run/haproxy.app.pid
    user        haproxy
    group       users
    daemon

    # turn on stats unix socket
    stats socket /var/lib/haproxy.elasticsearch/stats level admin

#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
    mode                    tcp
    log                     global
    option                  tcplog
    option                  dontlognull

    timeout connect         4s
    timeout server          30s
    timeout client          30s

    timeout http-request    10s
    timeout queue           30s
    timeout http-keep-alive 5s
    timeout check           5s
    maxconn                 10000

frontend front
        mode tcp
        bind ipin:vipport
        default_backend back


backend back
        balance leastconn
        source ipin
        #balance roundrobin
        #option ssl-hello-chk
        stick-table type ip size 200k expire 60m
        stick on src

        server server3 ip:80 check
        server server2 ip:80 check
        server server1 ip:80 check

listen stats
        bind *:99
        mode http
        stats enable
        stats uri /

我建议,您在应用服务器中有一个单独的运行状况检查路由,并定期点击该路由,而不仅仅是检查端口是否已打开。这将帮助您监视实际的应用程序端口,而不是NGINX

在HAProxy,这可以通过注入一个简单的Lua脚本来实现,该脚本到达终点,检查状态,并根据状态标记服务器是否启动


您将能够找到HAProxy的一些Lua脚本示例。

我认为这不会像。。这些端口连接到所述服务器上的本地主机。。这就是nginx就位的原因,它是一个从hostname:port到localhost:port的代理传递,中间有一个auth层。HA已到位以实现高可用性。有一段时间,HA在应用程序关闭的服务器上ping nginx,我们得到了一个错误的回复。