本文接上篇puppet负载均衡的环境实验。

Foreman-proxy可以采用四层或者七层负载,都可以实现,在foreman的web界面添加一个smart-proxy,后端多个真实foreman-proxy处理的目的

个人采用的是haproxy实现的四层和七层代理,pm01和pm03是foreman-proxy服务器,ag01是foreman服务器,lvs是负载均衡服务器(vip在lvs01服务器上),上面代理了puppet,foreman-proxy业务。

5.1 Foreman-proxy七层负载均衡

因为七层在做https的代理时候,出现ssl证书验证问题,于是根据官方配置文件的提示,采用http代理,而不是https代理,同时将所有的ssl证书替换为lvs代理的ssl证书。

5.1.1 修改foreman-proxy配置文件

[root@pm01 puppet]# grep -v "#" /etc/foreman-proxy/settings.yml | grep -v "^$"

---

:settings_directory: /etc/foreman-proxy/settings.d

:ssl_ca_file: /var/lib/puppet/ssl/certs/ca.pem

:ssl_certificate: /var/lib/puppet/ssl/certs/lvs.jq.com.pem

:ssl_private_key: /var/lib/puppet/ssl/private_keys/lvs.jq.com.pem

:trusted_hosts:

- pm01.jq.com

- pm02.jq.com

- pm03.jq.com

- ag01.jq.com

- ag02.jq.com

- ag03.jq.com

- ca01.jq.com

- ca02.jq.com

- lvs01.jq.com

- lvs02.jq.com

- pc.jq.com

- lvs.jq.com

:daemon: true

:bind_host: 0.0.0.0

:http_port: 8000  #默认此处为:https_port:8443

:virsh_network: default

:log_file: /var/log/foreman-proxy/proxy.log

:log_level: DEBUG

5.1.2 修改foreman-proxy的foreman配置文件

[root@pm01 puppet]# cat /etc/puppet/foreman.yaml

---

:url: "https://ag01.jq.com"

:ssl_ca: "/var/lib/puppet/ssl/certs/ca.pem"

:ssl_cert: "/var/lib/puppet/ssl/certs/lvs.jq.com.pem"

:ssl_key: "/var/lib/puppet/ssl/private_keys/lvs.jq.com.pem"

:user: ""

:password: ""

:puppetdir: "/var/lib/puppet"

:puppetuser: "puppet"

:facts: true

:timeout: 10

:threads: null

5.1.3 Haproxy代理配置

[root@lvs01 haproxy]# grep -v "#" /etc/haproxy/haproxy.cfg | grep -v "^$"

global

maxconn         40000

ulimit-n        500000

log             127.0.0.1 local0 info

uid             99

gid             99

chroot          /tmp

daemon

defaults

log     global

retries 2

option redispatch

option dontlognull

option httpclose

balance roundrobin

timeout connect 30000ms

timeout client 30000ms

timeout server 30000ms

timeout check 2000

listen admin_stats

bind 0.0.0.0:8080

mode http

stats refresh 5s

stats enable

stats hide-version

stats realm Haproxy\ Statistics

stats uri /haproxy

stats auth admin:password

listen puppetmaster *:8140

mode tcp

option ssl-hello-chk

balance source

server pm01 pm01.jq.com:8140 check inter 2000 fall 3

server pm03 pm03.jq.com:8140 check inter 2000 fall 3

frontend foremanproxy

  bind 0.0.0.0:8000

  mode http

  log global

  option httplog

  reqadd X-Forwarded-Proto:\ https

  default_backend web_server

backend web_server

  mode http

  log global

  option httplog

  balance source

  cookie SERVERID insert indirect nocache

  server pm01 pm01.jq.com:8000 check inter 2000 fall 3

  server pm03 pm03.jq.com:8000 check inter 2000 fall 3

 

同时,foreman-proxy运行在8000端口,也是安全的,

上图可以看出,信息到了8000端口,最后还是https在处理。

5.2 Foreman-proxy四层负载均衡

四层采用的是https的代理,haproxy配置如下:

listen foreman-proxy *:8443

mode tcp

option ssl-hello-chk

option tcplog

#    #balance source

balance roundrobin

#    #balance source

server pm01 pm01.jq.com:8443 check inter 2000 fall 3

server pm03 pm03.jq.com:8443 check inter 2000 fall 3

5.3 foreman web添加smart_proxy

foreman web界面添加smart_proxy,只需要添加lvs服务器上的foreman-proxy即可,如下:

四层负载:

http://lvs.jq.com:8000

七层负载:

https://lvs.jq.com:8443

 

5.4 负载测试

采用分别停止pm01和pm03服务器上foreman-proxy进程的方式测试,每次测试之前删除foreman页面上的主机和smart_proxy,然后再在web添加foreman-proxy地址,在pm01,pm03,ag01上执行puppet agent -t,可以发现,主机成功添加到主机页面。

Foreman-porxy负载均衡搭建的更多相关文章

  1. 使用Nginx负载均衡搭建高性能.NETweb应用程序二

    在文章<使用Nginx负载均衡搭建高性能.NETweb应用程序一>中,让我们对Nginx有了一个初步认识,下面我们将在windows平台下面使用Nginx演示集群部署我们的web应用. 一 ...

  2. 使用Nginx负载均衡搭建高性能.NETweb应用程序(转)

    一.遇到的问题 当我们用IIS服务器部署了一个web应用以后,当很多用户高并发访问的时候,客户端响应就会很慢,客户的体验就会很差,由于IIS接受到客户端请求的时候,就会创建一个线程,当线程达到几千个时 ...

  3. Nginx 负载均衡搭建

    配置文件Nginx/conf/nginx.conf 什么是负载均衡呢? 由于目前现有网络的各个核心部分随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设 ...

  4. SQL SERVER 2016 AlwaysOn 无域集群+负载均衡搭建与简测

    之前和很多群友聊天发现对2016的无域和负载均衡满心期待,毕竟可以简单搭建而且可以不适用第三方负载均衡器,SQL自己可以负载了.windows2016已经可以下载使用了,那么这回终于可以揭开令人憧憬向 ...

  5. haproxy简单负载均衡搭建

    最近对负载均衡进行搭建具体方法如下: haproxy 修改部分(haproxy-cfg.cfg) global daemon maxconn 4500 defaults mode http timeo ...

  6. Nginx负载均衡搭建(Window与Linux)

    windows上搭建nginx负载均衡 1.准备几台http服务器软件,这里选用一台apache一台tomcat apache(windows)下载链接:https://www.apachehaus. ...

  7. nginx+tomcat实现Windows系统下的负载均衡搭建的案例

    刚入行没多久就听过‘负载均衡’的大名,到现在因为工作接触的少,所以没什么太多的认识.但自己又对其非常的好奇,所以前两天通过查资料,在自己的笔记本上就搭建了一个超简单的案例(工作中没有时间,晚上到家了条 ...

  8. nginx+tomcat负载均衡搭建

    一.      单独部署tomcat和nginx Nginx版本:nginx-1.13.5 Tomcat版本:apache-tomcat-8.5.8 操作系统:win10 必须先部署一个tomcat服 ...

  9. 负载均衡的3种模型(httpd+lvs几十万并发的负载均衡搭建)

    一.几种常见的负载均衡模型 二.搭建httpd+lvs LVS .node01 启动一块eth0:2的网卡子接口(ifconfig eth0: down可以把网卡down掉) ifconfig eth ...

随机推荐

  1. Java基础 - 标识符

    标识符就是用来给包,类,方法变量等起名字的符号 组成规则: A:unicode字符 数字字符,英文大小写字母,汉字(不建议使用汉字) B:下划线 _ C:美元符 $ 注意事项: A:不能以数字开头 B ...

  2. ElasticSearch(二十一)正排和倒排索引

    1.区别 搜索的时候,要依靠倒排索引:排序的时候,需要依靠正排索引,看到每个document的每个field,然后进行排序,所谓的正排索引,其实就是doc values 在建立索引的时候,一方面会建立 ...

  3. ABAP文件选择框函数

    因为WS_FILENAME_GET已经被废弃所以使用接口CL_GUI_FRONTEND_SERVICES来实现本地文件的选择. 用接口类CL_GUI_FRONTEND_SERVICES实现的方法 CA ...

  4. 第2条:遵循PEP8风格指南

    <Python Enhancement Proposal #8>(8号Python增强提案)又叫PEP8,它是针对Python代码格式而编订的风格指南. 尽管可以在保证语法正确的前提下随意 ...

  5. PAT 天梯赛 【】 L3-015. 球队“食物链” 【BFS+剪枝】

    题目链接 https://www.patest.cn/contests/gplt/L3-015 思路 用一个 数组标记 胜负 每次输入一行字符串 然后遍历 如果 碰到 W 那么 vis[i][j] = ...

  6. python neo4j

    https://neo4j.com/developer/python/ http://debian.neo4j.org/

  7. Data Structure Binary Tree: How to determine if a binary tree is height-balanced?

    http://www.geeksforgeeks.org/how-to-determine-if-a-binary-tree-is-balanced/ #include <iostream> ...

  8. Python 3 udp 套接字

    Python 3 udp套接字 TCP是建立可靠连接,并且通信双方都可以以流的形式发送数据.相对TCP,UDP则是面向无连接的协议 使用UDP协议时,不需要建立连接,只需要知道对方的IP地址和端口号, ...

  9. CSS3自定义Checkbox特效

    在线演示 本地下载

  10. HDU2612 -暑假集训-搜索进阶N

     http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82828#problem/N这两天总是因为一些小错误耽误时间,我希望自己可以细心点.珍惜 ...