设为首页 收藏本站
查看: 1478|回复: 0

[经验分享] puppet端口负载均衡配置(nginx+mongrel)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-4-21 09:39:43 | 显示全部楼层 |阅读模式
当puppetmaster管理的主机越来越多时,puppetmaster本身性能会存在性能瓶颈问题,除了增加服务器扩充puppetmaster的数量增加puppetmaster整体性能外,也可以通过单台扩充puppetmaster的进程数来增加puppetmaster的性能。
以下是通过nginx负载均衡puppetmaster的进程,由nginx向所有puppetagent提供认证服务,除此之外的其他puppetmaster功能的实现由nginx转向puppetmaster其中一个进程去处理即可。而nginx的upstream字段里面所包含的地址填写为127.0.0.1指向puppetmaster进程,提高了安全性。
1.1 安装相关包
[iyunv@puppetserver yum.repos.d]# yum install rubygem-mongrel nginx
1.2 修改puppet端口
[iyunv@puppetserver yum.repos.d]# vim /etc/sysconfig/puppetmaster
PUPPETMASTER_PORTS=( 18140 18141 18142 18143 )
PUPPETMASTER_EXTRA_OPTS="--servertype=mongrel --ssl_client_header=HTTP_X_SSL_SUBJECT"
1.3 配置nginx
[iyunv@puppetserver nginx]# vim nginx.conf
user              nginx nginx;
worker_processes  4;
error_log  /var/log/puppet/nginx-puppet.log notice;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    default_type        application/octet-stream;
    sendfile        on;
    tcp_nopush     on;
    keepalive_timeout  65;
    tcp_nodelay         on;
    large_client_header_buffers 16      4k;
    proxy_buffers                       128     4k;
    upstream puppetmaster {
        server 127.0.0.1:18140;
        server 127.0.0.1:18141;
        server 127.0.0.1:18142;
        server 127.0.0.1:18143;
    }
    server {
        listen 8140;
        root    /etc/puppet;
        ssl                     on;
        ssl_session_timeout     5m;
        ssl_certificate         /var/lib/puppet/ssl/certs/puppetserver.kisspuppet.com.pem;
        ssl_certificate_key     /var/lib/puppet/ssl/private_keys/puppetserver.kisspuppet.com.pem;
        ssl_client_certificate  /var/lib/puppet/ssl/ca/ca_crt.pem;
        ssl_crl                 /var/lib/puppet/ssl/ca/ca_crl.pem;
        ssl_ciphers             SSLv2:-LOW:-EXPORT:RC4+RSA;
        ssl_verify_client       optional;
        location / {
            proxy_pass          http://puppetmaster;
            proxy_redirect      off;
            proxy_set_header    Host            $host;
            proxy_set_header    X-Real-IP       $remote_addr;
            proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header    X-Client-Verify $ssl_client_verify;
            proxy_set_header    X-Client-DN     $ssl_client_s_dn;
            proxy_set_header    X-SSL-Subject   $ssl_client_s_dn;
            proxy_set_header    X-SSL-Issuer    $ssl_client_i_dn;
            proxy_read_timeout  65;
        }
    }
}
1.4 启动puppetmaster和nginx服务
[iyunv@linuxmaster1poc ~]# /etc/rc.d/init.d/nginx restart
Stopping nginx:                                            [FAILED]
Starting nginx:                                            [  OK  ]
[iyunv@linuxmaster1poc ~]# /etc/rc.d/init.d/puppetmaster start
Starting puppetmaster:
Port: 18140                                                [  OK  ]
Port: 18141                                                [  OK  ]
Port: 18142                                                [  OK  ]
Port: 18143                                                [  OK  ]
1.5 查看监听端口
[iyunv@linuxmaster1poc ~]# netstat -nlp | grep 814
tcp        0      0 0.0.0.0:8140                0.0.0.0:*                   LISTEN      6224/nginx         
tcp        0      0 127.0.0.1:18140             0.0.0.0:*                   LISTEN      6271/ruby           
tcp        0      0 127.0.0.1:18141             0.0.0.0:*                   LISTEN      6312/ruby           
tcp        0      0 127.0.0.1:18142             0.0.0.0:*                   LISTEN      6351/ruby           
tcp        0      0 127.0.0.1:18143             0.0.0.0:*                   LISTEN      6390/ruby   
1.6 通过日志/var/log/nginx/access.log进行查看
[iyunv@linuxmaster1poc nodes]# tailf  /var/log/nginx/access.log
192.168.100.127 - - [25/Nov/2013:16:42:49 +0800] "POST /production/catalog/agent2.kisspuppet.com HTTP/1.1" 200 570 "-" "-"
192.168.100.127 - - [25/Nov/2013:16:42:52 +0800] "PUT /production/report/agent2.kisspuppet.com HTTP/1.1" 200 58 "-" "-"
192.168.100.126 - - [25/Nov/2013:16:42:54 +0800] "GET /production/file_metadatas/plugins?links=manage&checksum_type=md5&&ignore=---+%0A++-+%22.svn%22%0A++-+CVS%0A++-+%22.git%22&recurse=true HTTP/1.1" 404 56 "-" "-"
192.168.100.126 - - [25/Nov/2013:16:42:54 +0800] "GET /production/file_metadata/plugins? HTTP/1.1" 404 36 "-" "-"
192.168.100.126 - - [25/Nov/2013:16:42:55 +0800] "POST /production/catalog/agent1.kisspuppet.com HTTP/1.1" 200 570 "-" "-"
192.168.100.126 - - [25/Nov/2013:16:42:58 +0800] "PUT /production/report/agent1.kisspuppet.com HTTP/1.1" 200 58 "-" "-"
192.168.100.125 - - [25/Nov/2013:16:43:07 +0800] "GET


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-18002-1-1.html 上篇帖子: dashboard默认UTC时区更改为中国时区CST 下篇帖子: 通过rabbitmq的web监控mcollective的状态(puppet管理)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表