Puppet利用Nginx多端口实现负载均衡.doc
文本预览下载声明
随着公司应用需求的增加,需要不断的扩展,服务器数量也随之增加,当服务器数量不断增加,我们会发现一台puppetmaster压力大,解析缓慢,而且时不时出现“time out”之类的报错,那这时有什么优化的办法吗?我们在Puppet官网上找寻解决方案,发现puppetmaster可以配置多端口,结合WEB代理(推荐Nginx),这样puppetmaster承受能力至少可以提升数倍以上,相当于在很大程度上优化了puppet的处理能力。
1.遵循前面的环境设定,我们这里的服务器环境及软件版本分别为:
服务器系统:CentOS5.8 x86_64
Ruby版本:ruby-1.8.5
Puppet版本:puppet-2.7.9
Nginx版本:nginx-0.8.46
2.Mongrel安装
要使用puppet多端口配置,需要指定mongrel类型,默认没有安装,需要安装:
yum install -y rubygem-mongrel
3.配置puppetmaster
在/etc/sysconfig/puppetmaster文件末尾添加如下两行,分别代表多端口、mongrel类型,内容如下所示:
PUPPETMASTER_PORTS=(8141 8142 8143 8144 8145)PUPPETMASTER_EXTRA_OPTS=--servertype=mongrel --ssl_client_header=HTTP_X_SSL_SUBJECT
4.安装Nginx服务
安装之前请确保系统已经安装pcre-devel正则库,然后再编译安装Nginx,需要添加SSL模块参数支持,Nginx的安装过程如下所示:
yum -y install pcre-develcd /usr/local/src wget /download/nginx-0.8.46.tar.gztar zxvf nginx-0.8.46.tar.gzcd nginx-0.8.46./configure --prefix=/usr/local/nginx --with-http_ssl_module make make install cd ../
添加www用户组及用户,命令如下所示:
groupadd wwwuseradd -g www www
5.我们依据puppet需求来修改配置文件nginx.conf,内容如下所示:
user www;worker_processes 8;events { worker_connections 65535;}http { include mime.types; default_type application/octet-stream; sendfile on; tcp_nopush on; keepalive_timeout 65; #定义puppet客户端访问puppet-server端日志格式 log_format main $remote_addr - $remote_user [$time_local] $request $request_length $request_time $time_local $status $body_bytes_sent $bytes_sent $connection $msec $http_referer $http_user_agent $http_x_forwarded_for $upstream_response_time $upstream_addr $upstream_status ; access_log /usr/local/nginx/logs/access.log main; upstream puppetmaster { server :8141; server :8142; server :8143; server :8144; server :8145; } s
显示全部