haproxy代理https配置方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了haproxy代理https配置方法相关的知识,希望对你有一定的参考价值。

 

 

 

记得在之前的一篇文章中介绍了nginx反向代理https的方法,今天这里介绍下haproxy代理https的方法:

haproxy代理https有两种方式:
1)haproxy服务器本身提供ssl证书,后面的web服务器走正常的http
2)haproxy服务器本身只提供代理,后面的web服务器走https(配置ssl证书)


第一种方式:haproxy服务器本身提供ssl证书

注意:
需要编译haproxy的时候支持ssl
编译参数:
#make TARGET=linux26 USE_OPENSSL=1 ADDLIB=-lz
#ldd haproxy | grep ssl
libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007fb0485e5000)

 

 

配置参数(修改haproxy.cfg文件)

frontend https_frontend
   bind *:443 ssl crt /etc/ssl/certs/servername.pem
   mode http
   option httpclose
   option forwardfor
   reqadd X-Forwarded-Proto:\ https
   default_backend web_server

backend web_server
  mode http
  balance roundrobin
  cookie SERVERID insert indirect nocache
  server s1 192.168.1.150:80 check cookie s1
  server s2 192.168.1.151:80 check cookie s2

-----------------------------------------------------------
注意:这里的pem 文件是下面两个文件合并而成:
#cat servername.crt servername.key |tee servername.pem
-----------------------------------------------------------

 

第二种方式:haproxy服务器本身只提供代理,没有ssl证书 (一般我们常用的就是这种方式)

这种方式,haproxy不需要重新编译支持ssl,简单方便,只需要后面的web服务器配置好ssl即可。

配置参数(修改haproxy.cfg文件)


frontend https_frontend
  bind *:443
  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.1.150:443
  server s2 192.168.1.151:443

---------------------------------------------------------
注意,这种模式下mode 必须是tcp 模式
---------------------------------------------------------

以上是关于haproxy代理https配置方法的主要内容,如果未能解决你的问题,请参考以下文章

使用 HAProxy 设置 HTTPs 正向代理

haproxy反向代理环境部署(http和https代理)

haproxy反向代理环境部署(http和https代理)

haproxy 配置https

负载均衡服务之HAProxy基础配置

Haproxy 实现部分域名使用https,其他域名正常使用http的配置方法