gpt4 book ai didi

jetty - 为 jetty 中的 "war"文件配置 ha-proxy

转载 作者:行者123 更新时间:2023-12-01 18:23:47 29 4
gpt4 key购买 nike

我是 Ha-proxy 的新手,遇到了一些问题。

我已经为两个服务器 10.x.y.10 和 10.x.y.20 配置了 ha-proxy。这两个运行 jetty 。

如果其中一个 jetty 出现故障,一切正常。请求转到第二台服务器,一切都按预期进行。

问题:假设两个 jetty 都在运行,如果我从一个 jetty 删除“war”文件,请求不会转到第二个服务器。它只是给出错误“错误 404 未找到”

我知道我已经为 jetty 配置了 ha-proxy,而不是为 war 文件配置了 ha-proxy,但是如果 war 文件丢失或者请求的情况甚至不可能,有什么方法可以重定向请求。

请指出正确的方向。

提前致谢。

这是我的 haproxy 配置。

高可用性代理配置

defaults
mode http
log global
option httplog
option logasap
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000



frontend vs_http_80
bind *:9090
default_backend pool_http_80

backend pool_http_80
#balance options
balance roundrobin

#http options
mode http
option httpchk OPTIONS /
option forwardfor
option http-server-close

#monitoring service endpoints with healthchecks
server pool_member1 10.x.y.10:8080 // x and y are dummy variables
server pool_member2 10.x.y.20:8080

frontend vs_stats :8081
mode http
default_backend stats_backend

backend stats_backend
mode http
stats enable
stats uri /stats
stats realm Stats\ Page
stats auth serveruser:password
stats admin if TRUE

最佳答案

我终于找到了解决方案。如果有人遇到同样的问题,请在下面找到解决方案。

下面的链接解决了我的问题

http://tecadmin.net/haproxy-acl-for-load-balancing-on-url-request/

基本上,前端配置中的以下行条目就起到了作用。

acl is_blog url_beg  /blog
use_backend tecadmin_blog if is_blog
default_backend tecadmin_website

ACL = 访问控制列表 -> ACL 用于测试某些条件并执行操作

如果满足前提条件,则重定向到后端服务器。我们可以使用多个 ACLS 并通过同一个前端定向到多个后端。

接下来在后端服务器配置中,我们需要在最后添加“check”来监控其健康状况。

backend tecadmin_website
mode http
balance roundrobin # Load Balancing algorithm
option httpchk
option forwardfor
server WEB1 192.168.1.103:80 check
server WEB2 192.168.1.105:80 check

这是针对我的问题的完整配置。

defaults
mode http
log global
option httplog
option logasap
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000



frontend vs_http_80
bind *:9090

acl x1_app path_dir x1
acl x2_app path_dir x2

acl x1_avail nbsrv(backend_x1) ge 1
acl x2_avail nbsrv(backend_x2) ge 1

use_backend backend_x1 if x1_app1 x1_avail
use_backend backend_x2 if x2_app x2_avail


backend backend_x1
#balance options
balance roundrobin

#http options
mode http
option httpchk GET /x1
option forwardfor
option http-server-close

#monitoring service endpoints with healthchecks
server pool_member1 10.x.y.143:8080/x1 check
server pool_member2 10.x.y.141:8080/x2 check


backend backend_x2
#balance options
balance roundrobin

#http options
mode http
option httpchk GET /x2
option forwardfor
option http-server-close

#monitoring service endpoints with healthchecks
server pool_member1 10.x.y.143:8080/x2 check
server pool_member2 10.x.y6.141:8080/x2 check




frontend vs_stats :8081
mode http
default_backend stats_backend

backend stats_backend
mode http
stats enable
stats uri /stats
stats realm Stats\ Page
stats auth serveruser:password
stats admin if TRUE

关于jetty - 为 jetty 中的 "war"文件配置 ha-proxy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24508729/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com