linux - 如何使用命令行脚本动态配置 haproxy?
问题描述
我想知道如何通过命令行脚本自动重新映射特定应用程序运行的 url。例如,侦听http://206.189.22.155:30000/designer-api/的应用程序应映射到http ://206.189.22.155/designer-api/。
我已经尝试通过在 haproxy.conf 中添加必要的前端和后端配置来手动映射特定应用程序的 URL。
frontend http-in
mode http
bind 206.189.22.155:80
acl path-page-designer path_beg -i /designer-api/
use_backend page-designer-backend if path-page-designer
backend page-designer-backend
mode http
option httplog
option forwardfor
server appserver1 206.189.22.155:30000
这个配置工作得很好。但是我不想手动配置它,而是想通过命令行脚本自动映射发布管道中每个应用程序的 url。这个命令行脚本应该更新 haproxy 配置以自动重新映射 URL 每次发布管道运行。脚本还应该是一个通用脚本,其中应用程序特定的详细信息(如端口、/服务名称等)作为参数从管道配置传递给脚本。即我不想为每个应用程序创建单独的脚本。只是一个通用脚本,用于所有管道。那么我该如何实现这一点?请提供示例帮助说明我如何获取应用程序特定的详细信息(如端口、/服务名称等)并将其作为参数发送到命令行脚本在发布管道中。
解决方案
您可以使用 consul 与 haproxy 集成,请查看以下帖子:
https://learn.hashicorp.com/consul/integrations/haproxy-consul
我希望这有帮助。
推荐阅读
- excel - 将值复制到不同工作表中的单元格。使用 vlookup 找到单元格
- flutter - CheckBox List Tile 将选定的值添加到不同的列表
- c# - 如果数据库调用失败,我们可以将项目移回 Channel
- node.js - 无法安装反应导航和手势
- powershell - 为什么运行shell脚本代码后窗口弹出并消失
- python - Django Private Channel - 如果是 self.object。#(消费者:一个或另一个:卖家#!= request.user:
- c - 我在简单的 C 循环中找不到错误,printf 不起作用
- laravel - Laravel 护照和 Shibboleth
- mysql - 选择mysql中所有出现次数超过9的主题的描述
- r - 在R中的目录中读取多个Excel文件(带有多个工作表)