4.HAProxy四层负载、HTTPS
  IS4yhiOomKTv 2023年11月02日 28 0
HAProxy四层负载

针对除HTTP以外的TCP协议应用服务访问的应用场景

MySQL Redis Memcached RabbitMQ
四层负载示例

注意:如果使用frontend和backend,一定在前端和后台段中都指定mode tcp

[root@ubuntu2004 ~]#vim /etc/haproxy/conf.d/ssh.cfg
listen ssh
    bind 192.168.10.100:2222
    mode tcp
    server ssh1 10.0.0.101:22 check
    server ssh2 10.0.0.102:22 check
[root@ubuntu2004 ~]#systemctl restart haproxy.service   
[root@ubuntu2004 ~]#ssh -p 2222 192.168.10.100 连接上看ip 为101
退出再次连接查看ip为102
HAProxy Https实现

haproxy支持https,基于性能考虑,证书是在后端服务器比如nginx上实现,即用户到haproxy利用tcp模式 再到后端服务器

Haproxy 可以实现 Https 的证书安全,即从用户到haproxy为https,从haproxy到后端服务器用http通信

第一步:证书制作(脚本)
[root@ubuntu2004 ~]#mkdir /etc/haproxy/certs
#!/bin/bash
#
CA_SUBJECT="/O=meng/CN=ca.meng.com"
SUBJECT="/C=CN/ST=henan/L=zhengzhou/O=meng/CN=www.meng.com"
SERIAL=34
EXPIRE=202002
FILE=www.meng.com

openssl req -x509 -newkey rsa:2048 -subj $CA_SUBJECT -keyout ca.key -nodes -days 202002 -out ca.crt

openssl req -newkey rsa:2048 -nodes -keyout ${FILE}.key -subj $SUBJECT -out ${FILE}.crt

openssl x509 -req -in ${FILE}.crt -CA ca.crt -CAkey ca.key -set_serial $SERIAL -days $EXPIRE -out ${FILE}.crt

chmod 600 ${FILE}.key ca.key

把脚本拉入certs生成证书并把 meng.org.crt  meng.org.key合成pem文件
[root@ubuntu2004 certs]#cat meng.org.key meng.org.crt > meng.org.pem
[root@ubuntu2004 certs]#ls
 ca.crt   ca.key  'cer_(2).sh'   meng.org.crt   meng.org.key   meng.org.pem
 
第二步:配置haproxy的derver文件
frontend www.meng.com
   bind 192.168.10.100:80
   bind 192.168.10.100:443 ssl crt /etc/haproxy/certs/meng.org.pem
   acl meng.org_domain   hdr_dom(host)   -i www.meng.org
   redirect scheme https if !{ ssl_fc }  meng.org_domain
   use_backend www.meng.org if meng.org_domain

   default_backend www.meng.com

backend www.meng.org
   server web1 10.0.0.101:80 weight 1 check

backend www.meng.com
   server web2 10.0.0.102:80 weight 1 check
[root@ubuntu2004 certs]#systemctl restart haproxy.service
去windos解析访问 www.meng.org 
192.168.10.100 www.meng.org www.meng.com
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  D04qQxYJZ4A6   2023年11月19日   24   0   0 mysqljava读写分离
  eHipUjOuzYYH   2023年12月10日   30   0   0 mysqlsqlUser
  mjtHZIki74si   2023年12月06日   32   0   0 ubuntubash
  jnZtF7Co41Wg   2023年11月24日   31   0   0 mysqlApachecentos
  oNkSXggMkQHo   2023年11月24日   32   0   0 Dockermysql
  9JCEeX0Eg8g4   2023年11月28日   17   0   0 主数据数据库mysql
  9JCEeX0Eg8g4   2023年12月11日   26   0   0 mysql配置文件