热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

安装配置_HAProxy安装配置SSL

篇首语:本文由编程笔记#小编为大家整理,主要介绍了HAProxy安装配置SSL相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了HAProxy安装配置SSL相关的知识,希望对你有一定的参考价值。


前沿

同时自己签发了ssl证书:查看详看今天发布的第二篇文章Linux下创建配置SSL证书

注:Haproxy 版本需要在1.5以上才支持SSL


一、现有环境

通过HAproxy做代理负载均衡,Varnish做缓存,实现动静分离,此文只介绍HAproxy与SSL的简要结合配置。后期再介绍HAproxy与Varnish缓存实现动静分离,图先贴出来。

HAProxy安装配置SSL

二、haproxy代理ssl模式

haproxy 代理 ssl 有两种方式

1、haproxy 本身提供ssl 证书,后面的web 服务器走正常的http (由于各种原因这里采用此方式,此方式也是偷懒方式,比较简单方便)

2、haproxy 本身只提供代理,后面的web服务器https

HAProxy安装配置SSL




  • 第一种是我们选择的模式,在haproxy这里设定SSL,这样我们可以继续使用七层负载均衡。SSL连接终止在负载均衡器haproxy ----->解码SSL连接并发送非加密连接到后端应用IIS/Tomcat等,这意味着负载均衡器负责解码SSL连接,这与SSL穿透相反,它是直接向代理服务器发送SSL连接的。



  • 有两种策略的组合做法,那就是第三种,SSL连接在负载均衡器处终止,按需求调整,然后作为新的SSL连接代理到后台服务器。这可能会提供最大的安全性和发送客户端信息的能力。这样做的代价是更多的CPU能耗和稍复杂一点的配置。


  • 选择哪个策略取决于你及应用的需求。SSL终端为我所见过最典型的策略,但SSL穿透可能会更安全。



第一种方式

1、下载程序包



# wget https://www.haproxy.org/download/1.9/src/haproxy-1.9.4.tar.gz


# tar xvf haproxy-1.9.4.tar.gz -C /usr/local/src


#cd /usr/local/src/haproxy-1.9.4






2、编译安装,开启支持SSL


# yum install -y openssl openssl-devel


# uname -a


# make TARGET=linux31 USE_OPENSSL=1 ADDLIB=-lz PREFIX=/usr/local/haproxy


# make install PREFIX=/usr/local/haproxy


# ldd haproxy | grep ssl libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007fb0485e5000)


配置参数:

global

tune.ssl.default-dh-param 2048

#修改默认使用2048bit加密,不设置会有警告


frontend http-in

bind *:80

bind *:443 ssl crt /usr/local/haproxy/ssl/servername.pem

mode http

option httpclose

option forwardfor reqadd X-Forwarded-Proto:\ https

# http和https并存

redirect scheme https if !{ ssl_fc }

# 开启后,http会直接跳转至https

default_backend web_server


注意:这里的pem 文件是下面两个文件合并而成:

cat servername.crt servername.key | tee servername.pem


配置启动脚本:

#cd /usr/local/src/haproxy-1.9.4

cp /usr/local/haproxy/sbin/haproxy /usr/sbin/

cp /usr/local/haproxy/sbin/haproxy /usr/local/sbin

cp examples/haproxy.init /etc/init.d/haproxy

# 修改启动脚本(可能会报错)为如下

vi /etc/init.d/haproxy

26行    [[ ${NETWORKING} = "no" ]] && exit 0  #有一个是语法

37行    CFG=/usr/local/$BASENAME/etc/$BASENAME.cfg   #如果不修改默认读取/etc/haproxy的配置文件


启动报错:

[root@HAProxy etc]# ../sbin/haproxy -f haproxy.cfg

[ALERT] 290/095154 (61574) : [../sbin/haproxy.main()] Cannot chroot1(/var/lib/haproxy).

解决方案:

[root@HAProxy etc]# mkdir /var/lib/haproxy

[root@HAProxy etc]# chown -R haproxy:haproxy /var/lib/haproxy/

[root@HAProxy ~]# systemctl restart haproxy


Failed to restart haproxy.service: Unit not found.

解决方案:

/etc/init.d/haproxy  启动文件有问题,从没问题的机器拷贝过来一份。

[root@HAProxy init.d]# systemctl restart haproxy.service

Warning: haproxy.service changed on disk. Run 'systemctl daemon-reload' to reload units.

解决方案:

执行下即可 systemctl daemon-reload



第二种方式

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

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.0.47:443

server s2 192.168.0.49:443

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


三、配置说明

这一行要加,要不然reload会警告

tune.ssl.default-dh-param 2048

HAProxy安装配置SSL

保留80,同时支持443 ssl,后面指定证书文件

HAProxy安装配置SSL

redirect scheme https if !{ ssl_fc }

这一行是仅支持ssl,效果是:访问80端口是自动跳转到443的ssl

这是针对node生效,如果想全局使用的话,可以把这句话添加到frontend下

HAProxy安装配置SSL

这是针对node生效,如果想全局使用的话,可以把这句话添加到frontend下


推荐阅读
  • 怎么查看linux日志里请求量最高的url访问最多的_40道Linux运维面试精华题,请收下这份跳槽秘籍!...
    过一次年,结婚、存款、父母养老,一系列向钱看的事都在碾压我们本来还挺简单的神经,但难过没有出路,唯有找到好的方法和事业方向& ... [详细]
  • PartI:取经处: http:www.ramkitech.com201210tomcat-clustering ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • LVS-DR直接路由实现负载均衡示例
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 什么是网关服务器初学linux服务器开发时,我们的服务器是很简单的,只需要一个程序完成与客户端的连接,接收客户端数据,数据处理,向客户端发送数据。但是在处理量很大的情况下,一 ... [详细]
  • 分布式系统关注点——360°全方位解读「缓存」
    如果这是第二次看到我的文章,欢迎文末扫码订阅我个人的公众号(跨界架构师)哟~  本文长度为3578字,建议阅读10分钟。坚持原创,每 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 在单位的一台4cpu的服务器上部署了esxserver,挂载了6个虚拟机,目前运行正常。在安装部署过程中,得到了cnvz.net论坛精华区 ... [详细]
  • 如何搭建服务器环境php(2023年最新解答)
    导读:本篇文章编程笔记来给大家介绍有关如何搭建服务器环境php的相关内容,希望对大家有所帮助,一起来看看吧。本文目录一览:1、怎么搭建p ... [详细]
  • NetBPM的安装还是比较简单的,有比较详细的文档。1.当然是先下载运行程序了,netbpm-0.8.3.1.zip,官方网站ÿ ... [详细]
author-avatar
zhattt199_117
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有