配置文件位置: /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. MapReduce和YARN框架

    MapReduce组件如图

  2. 病症:arm启动后应用程序界面显示…

    病症:病症:arm启动后应用程序界面显示不正常(左面有部分未能正常显示)也就是左面少一块区域,右面多一部, 原因:lcd显示驱动中场扫描的问题 平台:s3c2416.linux2.6.800*480l ...

  3. 如何搭建自己的SPRING INITIALIZR server

    这两天在慕课学Spring boot ,用idea通过spring initializr新建项目 即使用代理连不上.无奈. 参考了 GitHub - spring-io/initializr: A w ...

  4. PHP自动加载配置ArrayAccess类

    ArrayAccess是PHP的类,可以把对象当成数组来使用访问. Config.php   配置类 <?php namespace IMooc; class Config implements ...

  5. Docker学习笔记_安装和使用Zookeeper

    一.准备 1.宿主机OS:Win10 64位 2.虚拟机OS:Ubuntu18.04 3.账号:docker 二.安装 1.搜索镜像                                  ...

  6. Python 网络爬虫 010 (高级功能) 解析 robots.txt 文件

    解析 robots.txt 文件 使用的系统:Windows 10 64位 Python 语言版本:Python 2.7.10 V 使用的编程 Python 的集成开发环境:PyCharm 2016 ...

  7. 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 ...

  8. 认识HttpContext.User

    HttpContext.User,即IPrincipal .net源代码 namespace System.Security.Principal { /// <summary>Define ...

  9. Image Processing, Analysis & and Machine Vision - A MATLAB Companion

    Contents目录 Chapter 0: Introduction to the companion book本辅导书简介 Chapter 1: Introduction 简介 Viewing an ...

  10. SqueezeNet:AlexNet-level Accuracy with 50x fewer parameters and less than 0.5Mb model size

    - Fire modules consisting of a 'squeeze' layer with 1*1 filters feeding an 'expand' layer with 1*1 a ...