proxy - 在 HAProxy 配置中动态创建后端部分
问题描述
我有一个用例,我需要使用 HAProxy 作为代理而不是负载均衡器。因此,在我的情况下,我需要在代理启动时需要在配置中更新的许多后端部分。
但是有没有办法,我可以动态创建新的后端部分?
global
log stdout format raw daemon
stats socket ipv4@127.0.0.1:9999 level admin
stats socket /var/run/hapee-lb.sock mode 666 level admin
stats timeout 2m
defaults
log global
timeout client 50s
timeout client-fin 50s
timeout connect 5s
timeout server 10s
timeout tunnel 50s
frontend tcp-0_0_0_0-443
bind 135.27.110.163:443
mode tcp
tcp-request inspect-delay 5s
tcp-request content accept if { req_ssl_hello_type 1 }
use_backend %[req.ssl_sni,regsub(.com,.com443,g),lower,map_dom(/usr/local/etc/sample.map,bk_default)]
default_backend example_com_be
frontend tcp-0_0_0_0-5061
bind 135.27.110.163:5061
mode tcp
tcp-request inspect-delay 5s
tcp-request content accept if { req_ssl_hello_type 1 }
use_backend %[req.ssl_sni,regsub(.com,.com5061,g),lower,map_dom(/usr/local/etc/sample.map,bk_default)]
default_backend absanity_5061
backend example_com_be
mode tcp
server name1 x.x.x.x:443
backend absanity_5061
mode tcp
server name1 y.y.y.y:5061
AM 使用运行时 API 使用 Socat 更新地图。但是假设我要在配置中插入一个新的后端部分,其中包含新的服务器详细信息。我们如何才能做到这一点?
解决方案
我认为您不能在运行时使用套接字 API 创建新的后端。本文很好地概述了您可以在运行时修改的内容:https ://www.haproxy.com/blog/dynamic-configuration-haproxy-runtime-api/ 。
但是,您可以通过使用新后端创建新配置并重新加载 HAProxy 来添加新后端,而无需使用套接字 API。本文很好地概述了如何在不丢失连接的情况下重新加载 HAProxy: https ://www.haproxy.com/blog/truly-seamless-reloads-with-haproxy-no-more-hacks/
推荐阅读
- javascript - 如何使用 jQuery 更改数据图标值?
- r - 使用 R data.table 进行子集连接替换
- r - Monte Carlo 使用 Gamma 分布估计 Theta
- amazon-web-services - 用于拉取请求的 AWS Amplify 环境变量?
- ajax - 如何使用ajax检测哪个按钮被按下
- python - Keras Sequential Model 编译成功后不拟合
- arrays - 为什么这两个数组的差的平方是3?
- kubernetes - 容器上的端口如何映射到 Pod 上的容器?
- regex - Dart 使用 RegExp 从字符串中获取曲目元素
- javascript - 制作函数副本的技术如何在 JavaScript 中工作(故事书示例)