配置文件位置: /etc/haproxy/haproxy.cfg

关键点: Reqrep 正则重写URL

解决的问题场景: 负载均衡机器出口端口统一为80,代理后台API,Docs,Websocket,Web页面四个服务,服务端口不一。

最终实现结果:

10.0.0.3/api  -->  10.0.0.1: --> API服务

10.0.0.3  -->  10.0.0.2: --> Web页面

10.0.0.3/ws --> 10.0.0.1: --> Websocket服务

10.0.0.3/docs  --> 10.0.0.2: --> Docs文档

配置详情:

 Frontend App *:
acl uri_api path_beg /api/
acl uri_web path_beg /
acl uri_docs path_beg /docs/
acl uri_socket hdr(Upgrade) -i Websocket
acl uri_socket hdr_beg(Host) -i ws Use_backend api if uri_api
Use_backend socket if uri_socket
Use_backend web if uri_web
Use_backend docs if uri_docs
12 13 Backend api
14          balance roundrobin
15 reqrep ^([^\ ]*\ /)api[/]?(*) \1\2
16 server server1 10.0.0.1:8080 check
17
18 Backend socket
19 balance roundrobin
20 timeout queue 1h
21 timeout server 1h
22 timeout connect 1h
23 server server1 10.0.0.1:8443 check
24
25 Backend web
26 balance roundrobin
27 server server1 10.0.0.2:8080 check
28
29 Backend docs
30 balance roundrobin
31 server server1 10.0.0.2:9000 check

Haproxy配置之URL重写,支持websocket的更多相关文章

  1. tinkphp URL重写,支持伪静态

    通常的URL里面含有index.php,为了达到更好的SEO效果可能需要去掉URL里面的index.php ,通过URL重写的方式可以达到这种效果,通常需要服务器开启URL_REWRITE模块才能支持 ...

  2. ubuntu中apache的ssl证书配置及url重写

    一.https原理 借用网上的图(图片来源: https://www.cnblogs.com/xiohao/p/9054355.html ),用到了对称加密和非对称加密.    二.ubuntu的ap ...

  3. .htacess的url重写(支持伪静态)

    html网页纯静态: 1.加载的时候不需要调用数据库,打开速度快,另外减少了服务端脚本的匹配时间.2.减少了服务器对数据响应的负荷.3.从安全角度讲,纯静态网页不易遭受黑客攻击.4.从网站稳定性来讲, ...

  4. mvc路由设置参数配置类似于url重写

    1.新建的mvc项目中Global.asax 2.在另外一个控制器中的视图中 3. 4.

  5. Ubuntu_16.04 配置 Apache Rwrite URL 重写

    Ubuntu Apache配置Rwrite URL重写 0. apache目录

  6. URL重写2.1.mis

    概观 IIS URL重写2.1使Web管理员能够创建强大的规则来实现更容易让用户记住的网址,并使搜索引擎更容易找到.通过使用规则模板,重写映射,.NET提供程序和集成到IIS管理器中的其他功能,Web ...

  7. ASP.NET 整理比较全的URL重写解决方案

    经常有人请我指导应该如何动态地“重写”URL,以在他们的ASP.NETweb应用中发布比较干净的URL端点.这个博客帖子概述了几个方法,你可以用来在ASP.NET中干净地映射或重写URL,以及按照你自 ...

  8. IIS设置URL重写,实现页面的跳转的重定向方法

    默认IIS是不提供URL重写模块的. 请注意,不要将IIS默认的HTTP重定向理解为url重写. 安装url重写模块 url重写,是要从iis的应用市场下载url重写组件才可以的. URL重写工具的下 ...

  9. Haproxy配置支持https获取用户IP地址

    global log 127.0.0.1 local0 chroot /var/lib/haproxy #chroot运行路径 pidfile /var/run/haproxy.pid #haprox ...

随机推荐

  1. Professional C# 6 and .NET Core 1.0 - Chapter 37 ADO.NET

    本文内容为转载,供学习研究.如有侵权,请联系作者删除. 转载请注明本文出处:Professional C# 6 and .NET Core 1.0 - 37 ADO.NET 译文:C# 6 与 .NE ...

  2. 八数码问题——A*大法好

    [描述] 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字.棋盘中留有一个空格,空格用0来表示. 空格周围的棋子可以移到空格中. 要求解的问题是:给出一种初始布局(初始状态)和目标布局( ...

  3. mysql 错误总结 和FROM_UNIXTIME用法

    今天再倒入给数据库导入 .sql  文件的时候出现了一个错误.看错误码: You have an error in your SQL syntax; check the manual that cor ...

  4. wdcp挂载数据盘为WWW以及之后出现的各种问题解决方法

    昨天晚上突然有客户反映服务器访问不了,经检查后是因为磁盘满了! 购买阿里云的ECS选择linux系统的时候会赠送20G的系统盘,通常来讲自己用的话基本够了,但是我们作为网络公司,安装了一个WDCP后给 ...

  5. 面试题:TCP协议三次握手

    一.首先了解TCP报文格式 其中必须了解的字段有: 1.源端口与目的端口:16位,标识出发送端与接收端的端口号. 2.序号:32位,也叫顺序号.seg序号,本报文段所发送的数据的第一个字节的序号,用来 ...

  6. PCL 编译中遇到 error C4996: 'pcl::SAC_SAMPLE_SIZE'

    1. error C4996: 'pcl::SAC_SAMPLE_SIZE': This map is deprecated and is kept only to prevent breaking ...

  7. Entity Framework 6.0 Tutorials(7):DbSet.AddRange & DbSet.RemoveRange

    DbSet.AddRange & DbSet.RemoveRange: DbSet in EF 6 has introduced new methods AddRange & Remo ...

  8. 在IE11(Win10)中检查up6.2配置

      1.按F12,打开调试模式    2.打开调试程序选项卡 说明:在调试程序选项卡中可看到IE加载的脚本信息是否正确.因为IE有缓存,导致脚本有时不是最新的.    3.打开脚本,up6.js   ...

  9. 积分之谜——第六届蓝桥杯C语言B组(国赛)第一题

    原创 标题:积分之迷 小明开了个网上商店,卖风铃.共有3个品牌:A,B,C. 为了促销,每件商品都会返固定的积分. 小明开业第一天收到了三笔订单: 第一笔:3个A + 7个B + 1个C,共返积分:3 ...

  10. .netcore2.0 Startup 全局配置文件小技巧