Haproxy ssl 配置方式
通过haproxy redirect请求重定向的方法实现HTTP跳转HTTPS
配置实现http跳转到https,采用redirect重定向的做法,只需在frontend端添加:
frontend http-in
bind *:
bind *:443 ssl crt /etc/haproxy/aaa.bbb.pem
redirect scheme https if !{ ssl_fc }
redirect scheme https if !{ ssl_fc } 表示所有http站点都会跳转到https,如果只针对某一站点或某一URL进行跳转的话:
redirect scheme https if { hdr_beg(host) -i aaa.bbb.com } !{ ssl_fc }
redirect scheme https if { hdr_reg(host) -i ^[a-zA-Z0-9_]+.aaa.bbb.com } !{ ssl_fc }
当然了,也可以重定向也可以用在backend端:
frontend main *:
default_backend app
backend app
balance roundrobin
server node1 127.0.0.1: check weight redir http://www.baidu.cn
将访问的站点重定向到www.baidu.com
参考链接:http://blief.blog.51cto.com/6170059/1752669
http://www.cnblogs.com/ilanni/p/4941056.html
---------------------------------------------------------------------------------
1、haproxy 本身提供ssl 证书,后面的web 服务器走正常的http
2、haproxy 本身只提供代理,后面的web服务器https
第一种方式(推荐)
需要编译haproxy 支持ssl,编译参数:
# yum install openssl-devel -y
# wget http://haproxy.1wt.eu/download/1.5/src/devel/haproxy-1.5-dev19.tar.gz
# tar -zxvf haproxy-1.5-dev19.tar.gz ; cd haproxy-1.5-dev19
# make TARGET=linux26 USE_OPENSSL=1 ADDLIB=-lz
# ldd haproxy | grep ssl
libssl.so. => /usr/lib64/libssl.so. (0x00007fb0485e5000)
# make install PREFIX=/usr/local/haproxy
haproxy.cfg 配置:
global
maxconn 64000
log 127.0.0.1 local0
chroot /usr/share/haproxy
uid 99
gid 99
daemon
nbproc 4
tune.ssl.default-dh-param 2048
defaults
log global
mode http
option dontlognull
retries 3
option redispatch
option httpclose
balance roundrobin
option forwardfor if-none
maxconn 64000
timeout connect 5000
timeout client 50000
timeout server 50000
frontend https_frontend
bind *:443 ssl crt /etc/ssl/certs/servername.pem
acl host_https_ihouse hdr_beg(host) -i ihouse.xxx.com
use_backend yidongclient_server_https if host_https_ihouse
default_backend web_server
frontend http-in
bind *:80
log global
option httplog
option forwardfor
acl host_manager_uhouse hdr_beg(host) -i manager.u.house.com
use_backend manager_uhouse_server if host_manager_uhouse
backend manager_uhouse_server
balance source
option httpchk HEAD /httpchk.jsp HTTP/1.1\r\nHost:\ manager.u.house.com
server mannager_uhouse_48 10.0.10.48:8081 weight 1 check inter 5000 rise 2 fall 5
server mannager_uhouse_49 10.0.10.49:8081 weight 1 check inter 5000 rise 2 fall 5
backend yidongclient_server_https
balance roundrobin
cookie SERVERID insert indirect nocache
server s1 192.168.250.47:80 check cookie s1
server s2 192.168.250.49:80 check cookie s2
注意:这里的pem 文件是下面两个文件合并而成:
# cat servername.crt servername.key |tee servername.pem
按照如上规则如果多个站点就可以使用同样的规则 bind *:443 ssl crt $filepath crt $file2path crt $file3path
通过以上配置可以看出来,frontend与其相对应的backend可以分开,但是其各自acl规则是不同的,必须放在自己所属的区域下面。
第二种方式配置
不需要重新编译支持ssl,简单方便。需要后面的web服务器配置好ssl 即可。
frontend https_frontend
bind *:
mode tcp
default_backend web_server backend web_server
mode tcp
balance roundrobin
stick-table type ip size 200k expire 30m
stick on src
server s1 192.168.250.47:
server s2 192.168.250.49: 注意,这种模式下mode 必须是tcp 模式,经测试 frontend 采用mode tcp时,只认可 default_backend 这一个后端,无法使用acl
haproxy.cfg示例文件:
global
maxconn
log 127.0.0.1 local0
uid
gid
daemon
defaults
log global
mode http
option dontlognull
retries
option redispatch
option httpclose
balance roundrobin
maxconn
timeout connect
timeout client
timeout server 50000
frontend yidonghttps-in
bind *:443
mode tcp
default_backend yidongclient_server_https
frontend http-in
bind *:
mode http
log global
option httplog
option forwardfor
acl host_manager_uhouse hdr_beg(host) -i manager.u.house.com
use_backend manager_uhouse_server if host_manager_uhouse
backend yidongclient_server_https
mode tcp
stick-table type ip size 200k expire 30m
stick on src
option ssl-hello-chk
option httpchk OPTIONS * HTTP/1.1\r\nHost:\ ihouse.ifeng.com
server yidonghttps_168 10.0.10.168:443
backend manager_uhouse_server
balance source
option httpchk HEAD /httpchk.jsp HTTP/1.1\r\nHost:\ manager.u.house.com
server mannager_uhouse_48 10.0.10.48: weight check inter rise fall
server mannager_uhouse_49 10.0.10.49: weight check inter rise fall
参考资料:https://www.trustasia.com/help/haproxy-ssl.htm
Haproxy ssl 配置方式的更多相关文章
- HAPROXY 配置项/配置实例
HAPROXY 配置项/实例 常用配置选项: OPTION 选项: option httpclose :HAProxy会针对客户端的第一条请求的返回添加cookie并返回给客户端,客户端发送后续请求时 ...
- HAProxy 参数配置
RabbitMQ集群部署完成,通过HAProxy反向代理来提供统一的对RabbitMQ的访问入口. 1.Haproxy提供高可用性.负载均衡,以及基于TCP和HTTP的应用程序代理.(负载均衡策略有很 ...
- HAProxy详解(二):HAProxy基础配置与应用实例
一.HAProxy基础配置与应用实例: 1.快速安装HAProxy集群软件: HAProxy的官网: https://www.haproxy.org/#down下载HAProxy的源码包. 安装: [ ...
- Haproxy+ssl+nvm+forever
1 nvm介绍 NVM(Node version manager)顾名思义,就是Node.js的版本管理软件,可以轻松的在Node.js各个版本间切换,项目源码在GitHub: #安装git客户端 [ ...
- HAproxy 基础配置
基础配置详解 HAProxy 的配置文件haproxy.cfg由两大部分组成,分别是global和proxies部分 global:全局配置段 进程及安全配置相关的参数性能调整相关参数Debug参数 ...
- 负载均衡服务之HAProxy基础配置(一)
前文我们聊了下haproxy的基础安装,以及怎样去代理后端主机的配置:当然没有很详细的去说配置文件中各指令的意思:有关haproxy的安装和代理后端server可以参考本人博客https://www. ...
- 负载均衡服务之HAProxy https配置、四层负载均衡以及访问控制
前文我们聊了下haproxy的访问控制ACL的配置,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12817773.html:今天我们来聊一聊haproxy的h ...
- Haproxy安装配置及日志输出问题
简介: 软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现.LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载 ...
- SSL 通信原理及Tomcat SSL 配置
SSL 通信原理及Tomcat SSL 双向配置 目录1 参考资料 .................................................................. ...
随机推荐
- redis缓存
参考: java对redis的基本操作 http://www.cnblogs.com/edisonfeng/p/3571870.html 一.支持类型: key:一般设计为标准的字符串, values ...
- Android模拟器连接本李服务器localhost
Android模拟(simulator)把它自己作为了localhost,也就是说,代码中使用 localhost或者127.0.0.1来访问,都是访问模拟器自己! 如果你想在模拟器simulator ...
- 关于Git的网址
25个 Git 进阶技巧:[http://www.imooc.com/article/1089] Git版本控制与工作流:[http://www.imooc.com/article/1068]
- 关于Windows2008服务器设置MIME后仍然无法播放MP4的解决方法
最近遇到了一个非常邪门的故障,重新安装了Windows2008服务器后 Mp4无法正常播放: 整个互联网中关于设置MP4的方法基本都是教你如何在IIS中设置MIME 本文讨论的不是如何教你设置MIME ...
- VS2010 下 将 EntityFramework 的版本从 4.0 升级到 5.0
1. 下载安装 EF 5.x DbContext Generator for C# : 下载地址:https://visualstudiogallery.msdn.microsoft.com/da74 ...
- Spark 1.6以后的内存管理机制
Spark 内部管理机制 Spark的内存管理自从1.6开始改变.老的内存管理实现自自staticMemoryManager类,然而现在它被称之为"legacy". " ...
- JVM类加载过程
先不说JVM类加载的原理,先看实例: NormalTest类,包含了一个静态代码块,执行的任务就是打印一句话. /** * 在正常类加载条件下,看静态代码块是否会执行 * @author jianyi ...
- UIScrollView 性能优化 - view转为Image
进入做地图闹钟app,图层关系是这样的: subwayView 上先绘制线路上各个元素:线条 ,站点名称-Label,站点位置(画圆圈表示)-View.shapeLayer UIBezierPath ...
- EF6.0批量插入
EF6.0批量插入有多种方式,可以使用EntityFramework.Extensions,提供的有BulkInsert. /// <summary> /// 批量插入 /// </ ...
- windows WSABUF 结构在IOCP 中应用时两个成员变量的意义
WSABUF 结构的原型如下: typedef struct __WSABUF { u_long len; char FAR *buf; } WSABUF, *LPWSABUF; 该结构在IOCP 中 ...