由于3.x系列已不再支持mongrel,所以就采用nginx+passenger来做负载均衡;之前有发过nginx+mongrel,puppet version是2.7系列的,所以还是可以用的;

环境说明:

操作系统:centos 5.8 64位

puppet版本:3.1系列

1,升级ruby至1.8.7,安装rubygems
# rpm -Uvh http://rbel.frameos.org/rbel5
# yum install -y ruby rubygems ruby-devel.x86_64    2,安装puppet server
# rpm -ivh http://yum.puppetlabs.com/el/5/products/x86_64/puppetlabs-release-5-1.noarch.rpm
# yum install -y puppet puppet-server    3,安装nginx相关的依赖包
# yum install -y gcc make pcre-devel zlib-devel openssl-devel pam-devel curl-devel rpm-build    4安装rake, rack and passenger ruby gems
# gem install rake rack passenger --no-rdoc --no-ri    5,安装nginx
编译参数如下,必须包含passenger模块
# tar -xjf pcre-8.32.tar.bz2 -C /usr/local/src   ----pcre自己下载
# tar -xzf nginx-1.2.1.tar.gz -C /usr/local/src  ----解压nginx
cd /usr/local/src/nginx-1.2.1    ./configure --prefix=$NGINX_PATH --with-   http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.32 --add-module=`passenger-config --root`/ext/nginx
# make
# make install    6,与passenger的结合
# mkdir -p /etc/puppet/rack/public
# cp /usr/share/puppet/ext/rack/files/config.ru /etc/puppet/rack/
# chown -R puppet:puppet /etc/puppet/rack/
# nginx.conf里面具体的内容如下    user www www;    worker_processes  1;    error_log  /usr/local/nginx/logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;    pid        /usr/local/nginx/nginx.pid;    #Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;    events {    use epoll;    worker_connections  65535;
}    http {    server_tokens off;    include       mime.types;    default_type  application/octet-stream;    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';    #access_log  logs/access.log  main;    charset utf-8;    server_names_hash_bucket_size 128;    client_header_buffer_size 32k;    large_client_header_buffers 4 64k;    client_max_body_size 8m;    tcp_nopush     on;    tcp_nodelay on;    keepalive_timeout 60;    fastcgi_intercept_errors on;    fastcgi_connect_timeout 300;    fastcgi_send_timeout 300;    fastcgi_read_timeout 300;    fastcgi_buffer_size 64k;    fastcgi_buffers 4 64k;    fastcgi_busy_buffers_size 128k;    fastcgi_temp_file_write_size 128k;    open_file_cache max=65535 inactive=10s;    open_file_cache_valid 30s;    open_file_cache_min_uses 1;    gzip on;    gzip_min_length  1k;    gzip_buffers     4 16k;    gzip_http_version 1.0;    gzip_comp_level 2;    gzip_types       text/plain application/x-javascript text/css application/xml;    gzip_vary on;    # Passenger needed for puppet    passenger_root  /usr/lib/ruby/gems/1.8/gems/passenger-3.0.19;    passenger_ruby  /usr/bin/ruby;    passenger_max_pool_size 15;    index index.html index.htm index.php;    server {    listen       80;    server_name  localhost;    #access_log  logs/host.access.log  main;    location / {    root   html;    index  index.php index.html index.htm ;    }    error_page   500 502 503 504  /50x.html;    location = /50x.html {    root   html;    }    location ~ .php$ {    root           html;    #fastcgi_pass   127.0.0.1:9000;    fastcgi_pass unix:/dev/shm/php.socket;    fastcgi_index  index.php;    fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;    include        fastcgi_params;    }    }    server {    listen                     8140 ssl;    server_name                client.domain.com;    passenger_enabled          on;    passenger_set_cgi_param    HTTP_X_CLIENT_DN $ssl_client_s_dn;     passenger_set_cgi_param    HTTP_X_CLIENT_VERIFY $ssl_client_verify;     access_log                 /usr/local/nginx/logs/puppet_access.log;    error_log                  /usr/local/nginx/logs/puppet_error.log;    root                       /etc/puppet/rack/public;    ssl_certificate            /var/lib/puppet/ssl/certs/client.domain.com.pem;    ssl_certificate_key        /var/lib/puppet/ssl/private_keys/client.domain.com.pem;    ssl_crl                    /var/lib/puppet/ssl/ca/ca_crl.pem;    ssl_client_certificate     /var/lib/puppet/ssl/ca/ca_crt.pem;    ssl_ciphers                SSLv2:-LOW:-EXPORT:RC4+RSA;    ssl_prefer_server_ciphers  on;    ssl_verify_client          optional;    ssl_verify_depth           1;    ssl_session_cache          shared:SSL:128m;    ssl_session_timeout        5m;    }    }
注意下,我这里puppet server的hostname 是client.domain.com,至于具体的key路径之类的 大家自己按各自的环境自己改
然后调整下puppet.conf
[main]    [agent]    server = client.domain.com   [master]    certname = client.domain.com   7,验证
启动nginx
# lsof -i:8140
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   20855 root    9u  IPv4 421091      0t0  TCP *:8140 (LISTEN)
nginx   20856  www    9u  IPv4 421091      0t0  TCP *:8140 (LISTEN)
可以发现8140端口已经起来
# puppet agent --test --server client.domain.com
Info: Retrieving plugin
Info: Caching catalog for client.domain.com
Info: Applying configuration version '1366960369'
Notice: Finished catalog run in 0.16 seconds
发现已能正常使用
# tail /usr/local/nginx/log/puppet_access.log  查看nginx日志
192.168.200.220 - - [26/Apr/2013:21:12:15 +0800] "GET /production/node/client.domain.com? HTTP/1.1" 200 3502 "-" "-"
192.168.200.220 - - [26/Apr/2013:21:12:16 +0800] "GET /production/file_metadatas/plugins?&links=manage&recurse=true&checksum_type=md5&ignore=---+%0A++-+%22.svn%22%0A++-+CVS%0A++-+%22.git%22 HTTP/1.1" 200 283 "-" "-"
192.168.200.220 - - [26/Apr/2013:21:12:17 +0800] "POST /production/catalog/client.domain.com HTTP/1.1" 200 1033 "-" "-"
192.168.200.220 - - [26/Apr/2013:21:12:17 +0800] "PUT /production/report/client.domain.com HTTP/1.1" 200 14 "-" "-"
已经有记录,    8.调整
如果puppetmaster服务已经做成开机启动,记得关掉
# chkconfig puppetmaster off
# chkconfig nginx on

至此Puppet 负载均衡到此结束,nginx分别与passenger,mongrel的结合都做完了

本文出自 “TNT、运维之路” 博客,请务必保留此出处http://tntdba.blog.51cto.com/1199791/1187739

转载于:https://www.cnblogs.com/L-H-R-X-hehe/p/3995392.html

puppet负载均衡之nginx+passenger相关推荐

  1. 除了负载均衡,Nginx 能做的还有很多

    Nginx应该是现在最火的web和反向代理服务器,没有之一.她是一款诞生于俄罗斯的高性能web服务器,尤其在高并发情况下,相较Apache,有优异的表现.那除了负载均衡,她还有什么其他的用途呢,下面我 ...

  2. nginx 反向代理,nginx 负载均衡【nginx】(一)

    文章目录 1 具体内容 1.1 nginx简介 1.2 正向代理和反向代理 1.3 web服务器搭建 1.4 部署安装nginx 1.5 配置文件详解: 1.6 负载均衡: 1 具体内容 中文官网: ...

  3. 除了负载均衡,Nginx 还可以做很多:限流、缓存、黑白名单等

    Nginx应该是现在最火的web和反向代理服务器,没有之一.她是一款诞生于俄罗斯的高性能web服务器,尤其在高并发情况下,相较Apache,有优异的表现. 那除了负载均衡,她还有什么其他的用途呢,下面 ...

  4. Nginx做负载均衡报:nginx: [emerg] could not build the types_hash

    环境:KVM/Centos6.3 用Nginx做负载均衡的时候在配置完成后,启动Nginx的时候报: nginx: [emerg] could not build the types_hash, yo ...

  5. php负载均衡面板,nginx负载均衡的五种策略

    nginx可以根据客户端IP进行负载均衡,在upstream里设置ip_hash,就可以针对同一个C类地址段中的客户端选择同一个后端服务器,除非那个后端服务器宕了才会换一个. nginx可以根据客户端 ...

  6. nginx 转发_除了转发和负载均衡,nginx又一次让他玩出新高度

    点击上方"Java学习之道",选择"关注"公众号 每天10:24,干货准时送达! 来源:https://dwz.cn/JY7SVlZf Nginx应该是现在最火 ...

  7. php nginx实现负载均衡,使用Nginx简单实现负载均衡

    只是简单使用Nginx而已,知道能这么用,但是在实际项目中并没有实践过,在项目不大的时候用不到,但是对于理解负载均衡来说还是可以的. 利用虚拟机安装了三个CentOS系统,然后顺便装了环境. 这里顺便 ...

  8. 除了负载均衡,Nginx还可以做很多,限流、缓存、黑白名单等

    点击上方"朱小厮的博客",选择"设为星标" 做积极的人,而不是积极废人 来源:https://dwz.cn/JY7SVlZf Nginx应该是现在最火的web和 ...

  9. Nginx的反向代理与负载均衡--配置Nginx

    前言 Nginx 是一个非常轻量级的服务器,他虽轻但是他最大的优点就是可以承载大量的并发,所以说一般的话很少有用 Node 直接去做服务器让用户去访问的,因为 Node 本身就需要做非 常非常多的事情 ...

  10. Web服务器的负载均衡(nginx)

    nginx 文章目录 nginx 一.nginx的安装(configure,make,make install) 二.nginx的配置(负载均衡) 扩充调度算法 一.nginx的安装(configur ...

最新文章

  1. 【C++】C++ 强制转换运算符
  2. 用C语言解“然后是几点”问题
  3. 【HM】第3课:JavaScript高级
  4. 深入解析阿里Android热修复技术原理
  5. ATT扩展随选网络至100城 SDN在美国落地开花
  6. Android之获取到音视频的时长后按格式(00:00或者00:00:00)显示
  7. linux连接Db2数据库时报58031_db2常用命令
  8. node redis集群_如何使用集群扩展Node.js服务器
  9. 诗与远方:无题(十)- 小熊夜游走廊记
  10. 有关python的知识点_Python常见的知识点整理
  11. html5声称需要大写吗,html5中有没有规定字母标签是用大写还是小写?
  12. 机器学习项目实战----泰坦尼克号获救预测(一)
  13. IEquatable「T」和Equal详解
  14. 今天终于搞懂了:为什么Java的main方法必须是public static void?
  15. Cp与Cpk了解与计算
  16. 离开一线三年后,码农们都过上好的生活了吗
  17. html表单中添加手机短信认证,表单提交前验证短信验证码是否正确
  18. linux命令 trtest,Linux tr命令的使用方法
  19. B站运营封面实战攻略!
  20. 升级Mac内置的vim

热门文章

  1. Softmax分类函数
  2. hive数据导入导出和常用操作
  3. flume建立ElasticSearch索引时间的问题
  4. luajit日记-配置说明
  5. hdu 1536 S-Nim (sg)
  6. 权重尺寸的计算,张量(图像)的尺寸,以及卷积神经网络(CNN)中层参数的计算,以及FC的维度卷积替代方案
  7. 数据--第51课 - 二叉排序树
  8. samba 安装配置部署和优化
  9. 凸优化第五章对偶 5.7 例子
  10. [CodeForces 372A] Counting Kangaroos is Fun