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