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

标签 jetty high-availability haproxy

我是 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/

相关文章:

java - 为什么请求源自节点 1 上的 JETTY 服务器,在节点 2 上提供响应?

java - 无法在嵌入式 Jetty 服务器中加载 JSTL taglib

azure - 确保Windows Azure网站的高可用性

kubernetes - 将 Keycloak HA 集群部署到 kubernetes | Pod 没有发现彼此

ssl - 将 http 重定向到 https haproxy 使用 ssl passthrough

ssl - 用于 HTTP 而非 WebSocket 的 HAProxy SSL 重定向

java - 在 docker 镜像中部署 WAR 文件的正确方法

java - 为什么jetty服务器在发送请求时不同意协议(protocol)?

java - 在高可用性下处理故障转移?

failover - HAProxy - 在故障转移后保持 session 粘性