Openstack 集群,及常用服务的 高可用 haproxy配置

一、介绍

  配置文件位置(yum 安装):/etc/haproxy/haproxy.cfg

  全局配置  

1
2
3
4
5
6
7
8
9
10
11
12
13
#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
    log         127.0.0.1 local2
 
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    stats socket /var/lib/haproxy/stats

  默认配置  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option forwardfor
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000

  配置haproxy 的统计页面  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#---------------------------------------------------------------------
# tong ji ye mian pei zhi
#---------------------------------------------------------------------
    listen stats
    bind 10.6.32.200:1080
    mode http
    option httplog
    log 127.0.0.1 local0 err
    stats refresh 30s
    maxconn 10
    stats uri /admin
    stats realm Haproxy\ Statistics
    stats auth admin:admin    #web登录的账号密码
    stats hide-version
    stats admin if TRUE

    在浏览器中访问:http://10.6.32.200:1080/admin

    

 

1、httpd 服务  

#--------------------------------------------------------------------- # listen httpd server #--------------------------------------------------------------------- listen httpd_cluster bind 10.6.32.200:80 balance roundrobin option tcpka option httpchk option tcplog server controller1 controller1:80 check port 80 inter 2000 rise 2 fall 5 server controller2 controller2:80 check port 80 inter 2000 rise 2 fall 5 server controller3 controller3:80 check port 80 inter 2000 rise 2 fall 5

 

2、mysql 服务  

#--------------------------------------------------------------------- # listen Mysql-db server #--------------------------------------------------------------------- listen mysql_cluster mode tcp bind 10.6.32.200:3306 balance source option mysql-check user haproxy # 需要在数据库中创建没有密码的 haproxy用户,不需要有任何权限,详情查看博客:Mysql 5.7 弱密码限制,及创建用户无密码用户 server controller1 controller1:3306 weight 1 check inter 2000 rise 2 fall 5 server controller2 controller2:3306 weight 1 check inter 2000 rise 2 fall 5 server controller3 controller3:3306 weight 1 check inter 2000 rise 2 fall 5

 

3、 keystone-admin API  

1
2
3
4
5
6
7
8
9
10
11
12
13
#---------------------------------------------------------------------
# listen keystone-admin server
#---------------------------------------------------------------------
listen keystone_admin
    bind 10.6.32.200:35357
    balance source
    option  tcpka
    option  httpchk
    option  tcplog
    http-request del-header X-Forwarded-Proto if { ssl_fc }
    server controller1 10.6.32.51:35357 check inter 2000 rise 2 fall 5
    server controller2 10.6.32.52:35357 check inter 2000 rise 2 fall 5
    server controller3 10.6.32.53:35357 check inter 2000 rise 2 fall 5

  

4、keystone-public 和 keystone-internal  API

1
2
3
4
5
6
7
8
9
10
11
12
13
#---------------------------------------------------------------------
# listen keystone-public and  keystone-internal server
#---------------------------------------------------------------------
listen keystone_pub_int
    bind 10.6.32.200:5000    #需要将haproxy 默认自带的 frontend  main *:5000 区块注释掉,有端口冲突
    balance source
    option  tcpka
    option  httpchk
    option  tcplog
    http-request del-header X-Forwarded-Proto if { ssl_fc }
    server controller1 controller1:5000 check inter 2000 rise 2 fall 5
    server controller2 controller2:5000 check inter 2000 rise 2 fall 5
    server controller3 controller3:5000 check inter 2000 rise 2 fall 5

 

5、Glance-api server

1
2
3
4
5
6
7
8
9
10
11
12
#---------------------------------------------------------------------
# listen glance-admin,glance-public,glance-internal server
#---------------------------------------------------------------------
listen glance-api
  bind 10.6.32.200:9292
  balance source
  option  tcpka
  option  httpchk
  option  tcplog
  server controller1 10.6.32.51:9292 check inter 2000 rise 2 fall 5
  server controller2 10.6.32.52:9292 check inter 2000 rise 2 fall 5
  server controller3 10.6.32.53:9292 check inter 2000 rise 2 fall 5

 

6、Glance-registery server

1
2
3
4
5
6
7
8
9
10
11
#---------------------------------------------------------------------
# listen glance-registery server
#---------------------------------------------------------------------
listen glance-registery
  bind 10.6.32.200:9191
  balance source
  option  tcpka
  option  tcplog
  server controller1 10.6.32.51:9191 check inter 2000 rise 2 fall 5
  server controller2 10.6.32.52:9191 check inter 2000 rise 2 fall 5
  server controller3 10.6.32.53:9191 check inter 2000 rise 2 fall 5

 

7、rabbitmq-web 

1
2
3
4
5
6
7
8
9
10
#---------------------------------------------------------------------
# listen Rabbitmq-web server
#---------------------------------------------------------------------
listen rabbitmq-web
  mode tcp
  bind 10.6.32.200:15671
  balance roundrobin
  server controller1 10.6.32.51:15672 check inter 2000 rise 2 fall 5
  server controller2 10.6.32.52:15672 check inter 2000 rise 2 fall 5
  server controller3 10.6.32.53:15672 check inter 2000 rise 2 fall 5

 

8、nova-api  server

1
2
3
4
5
6
7
8
9
10
11
12
13
#---------------------------------------------------------------------
# listen nova-api server
#---------------------------------------------------------------------
listen nova-api
    bind 10.6.32.200:8774
    balance source
    option  tcpka
    option  httpchk
    option  tcplog
    http-request del-header X-Forwarded-Proto if { ssl_fc }
    server controller1 controller1:8774 check inter 2000 rise 2 fall 5
    server controller2 controller2:8774 check inter 2000 rise 2 fall 5
    server controller3 controller3:8774 check inter 2000 rise 2 fall 5

  

9、nova novncproxy server  

1
2
3
4
5
6
7
8
9
10
11
12
13
#---------------------------------------------------------------------
# listen nova-novncproxy server
#---------------------------------------------------------------------
listen nova_novncproxy
    bind 10.6.32.200:6080
    balance source
    option  tcpka
    option  tcplog
    http-request del-header X-Forwarded-Proto if { ssl_fc }
    http-request set-header X-Forwarded-Proto https if { ssl_fc }
    server controller1 controller1:6080 check inter 2000 rise 2 fall 5
    server controller2 controller2:6080 check inter 2000 rise 2 fall 5
    server controller3 controller3:6080 check inter 2000 rise 2 fall 5

 

10、nova-placement-api  server

1
2
3
4
5
6
7
8
9
10
11
12
#---------------------------------------------------------------------
# listen nova-placement public、internal、admin server
#---------------------------------------------------------------------
listen nova_placement-api
    bind 10.6.32.200:8778
    balance source
    option  tcpka
    option  tcplog
    http-request del-header X-Forwarded-Proto if { ssl_fc }
    server controller1 controller1:8778 check inter 2000 rise 2 fall 5
    server controller2 controller2:8778 check inter 2000 rise 2 fall 5
    server controller3 controller3:8778 check inter 2000 rise 2 fall 5

 

11、neutron server

1
2
3
4
5
6
7
8
9
10
11
#---------------------------------------------------------------------
# listen neutron server
#---------------------------------------------------------------------
listen neutron
  bind 10.6.32.200:9696
  balance source
  option  tcpka
  option  tcplog
  server controller1 controller1:9696 check inter 2000 rise 2 fall 5
  server controller2 controller2:9696 check inter 2000 rise 2 fall 5
  server controller3 controller3:9696 check inter 2000 rise 2 fall 5

12、 memcache server

1
2
3
4
5
6
7
8
9
10
#---------------------------------------------------------------------
# listen memcached server
#---------------------------------------------------------------------
listen memcache
    mode tcp
    bind 10.6.32.200:11211
    balance static-rr
    server controller1 controller1:11211 weight 1 check inter 2000 rise 2 fall 5
    server controller2 controller2:11211 weight 10 check inter 2000 rise 2 fall 5
    server controller3 controller3:11211 weight 20 check inter 2000 rise 2 fall 5

 

13、cinder server

1
2
3
4
5
6
7
8
9
10
11
12
#---------------------------------------------------------------------
# listen cinder_api server
#---------------------------------------------------------------------
listen cinder_api
  bind 10.6.32.200:8776
  balance source
  option  tcpka
  option  tcplog
  http-request del-header X-Forwarded-Proto if { ssl_fc }
  server controller1 controller1:8776 check inter 2000 rise 2 fall 5
  server controller2 controller2:8776 check inter 2000 rise 2 fall 5
  server controller3 controller3:8776 check inter 2000 rise 2 fall 5

  

 

  

  

 

 

 

 

 


__EOF__

本文作者语 默
本文链接https://www.cnblogs.com/weijie0717/p/8530102.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   语~默  阅读(1134)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· Qt个人项目总结 —— MySQL数据库查询与断言
点击右上角即可分享
微信分享提示