Puppet扩展篇4-如何扩展master的SSL传输性能(nginx)

简介:

零基础学习Puppet自动化配置管理系列文档

描述:puppet使用SSL(https)协议来进行通讯,默认情况下,puppet server端使用基于Ruby的WEBRick HTTP服务器。由于WEBRick HTTP服务器在处理agent端的性能方面并不是很强劲,因此需要扩展puppet,搭建nginx或者其他强劲的web服务器来处理客户的https请求。

需要解决的问题:

  • 扩展传输方式:提高性能并增加Master和agent之间的并发连接数量。

  • 扩展SSL:采用良好的SSL证书管理方法来加密Master和agent之间的通讯。

Nginx+Passenger方式:

1、安装编译nginx所需要的开发包

[root@TKPUPT-M1 ~]# groupadd -g 3001 nginx
[root@TKPUPT-M1 ~]# useradd -u 3001 -g 3001 nginx
[root@TKPUPT-M1 ~]# yum install ruby-devel gcc make pcre-devel zlib-devel openssl-devel pam-devel curl-devel rpm-build

2、安装passenger(将gem软件包copy到本地)

备注:需要先将gem包下载到本地,当然也可以联网安装,会非常慢。

[root@TKPUPT-M1 gem]# gem install --localhost rake rack passenger --no-rdoc --no-ri

3、解压nginx、pcre源码包

[root@TKPUPT-M1 gem]# tar xf pcre-8.32.tar.gz -C /usr/local/src/
[root@TKPUPT-M1 gem]# tar xf nginx-1.4.2.tar.gz -C /usr/local/src/

4、编译并安装nginx

备注:主要是为了将模块passenger-config编译进来。

[root@TKPUPT-M1 ~]# cd /usr/local/src/nginx-1.4.2/
[root@TKPUPT-M1 nginx-1.4.2]# ./configure --user=nginx --group=nginx --prefix=/etc/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.32 --add-module=`passenger-config --root`/ext/nginx
[root@TKPUPT-M1 nginx-1.4.2]# make && make install

5、与passenger结合

备注:注意config.ru的属主和属组应该为puppet

[root@TKPUPT-M1 nginx-1.4.2]# mkdir  -p /etc/puppet/rack/public
[root@TKPUPT-M1 nginx-1.4.2]# cp /usr/share/puppet/ext/rack/config.ru  /etc/puppet/rack/
[root@TKPUPT-M1 nginx-1.4.2]# chown -R puppet. /etc/puppet/rack/

6、复制启动脚本到

[root@TKPUPT-M1 init.d]# cp /root/gem/nginx /etc/init.d/
[root@TKPUPT-M1 ~]# chmod a+x /etc/init.d/nginx

7、配置nginx

备注:注意和puppet结合的证书名称及路径

[root@TKPUPT-M1 gem]# vim /etc/nginx/conf/nginx.conf
user  nginx nginx;
worker_processes  1;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    passenger_root /usr/lib/ruby/gems/1.8/gems/passenger-4.0.19;
    passenger_ruby /usr/bin/ruby;
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen 8140                ssl;
    server_name                puppetmaster;
    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;
    proxy_buffer_size 4000k;
    proxy_buffering on;
    proxy_buffers 32 1280k;
    proxy_busy_buffers_size 17680k;
    client_max_body_size 10m;
    client_body_buffer_size 4096k;
    access_log /var/log/nginx/puppet_access.log;
    error_log /var/log/nginx/puppet_error.log;
    root /etc/puppet/rack/public;
    ssl off;
    ssl_session_timeout 5m;
    ssl_certificate /var/lib/puppet/ssl/certs/puppetmaster.pem;
    ssl_certificate_key /var/lib/puppet/ssl/private_keys/puppetmaster.pem;
    ssl_client_certificate /var/lib/puppet/ssl/certs/ca.pem;
    ssl_crl /var/lib/puppet/ssl/ca/ca_crl.pem;
    ssl_verify_client optional;
    ssl_ciphers SSLv2:-LOW:-EXPORT:RC4+RSA;
    ssl_prefer_server_ciphers on;
    ssl_verify_depth 1;
    ssl_session_cache shared:SSL:128m;
    # File sections
    location /production/file_content/files/ {
      types { }
      default_type application/x-raw;
      alias /etc/puppet/files/;
  }
 }
}

8、配置puppet.conf

[root@TKPUPT-M1 ~]# vim /etc/puppet/puppet.conf 
[master]
    certname = puppetmaster
    ca       = false
    ssl_client_verify_header = HTTP_X_CLIENT_VERIFY
    ssl_client_header = HTTP_X_CLIENT_DN

8、启动nginx

[root@TKPUPT-M1 gem]# mkdir /var/log/nginx/
[root@TKPUPT-M1 nginx-1.4.2]# /etc/init.d/puppetmaster stop
[root@TKPUPT-M1 nginx-1.4.2]# chkconfig puppetmaster off
[root@TKPUPT-M1 nginx-1.4.2]# /etc/init.d/nginx start
[root@TKPUPT-M1 nginx-1.4.2]# chkconfig nginx on

9、测试

在多个节点发起puppet agent -t命令动作,查看nginx日志看nginx+passenger是否代理成功。

[root@TKPUPT-CA ~]# puppet  agent -t
[root@TKPUPT-M1 ~]# tailf  /var/log/nginx/puppet_access.log

本文转自凌激冰51CTO博客,原文链接:http://blog.51cto.com/dreamfire/1565585,如需转载请自行联系原作者

相关文章
|
3月前
|
存储 缓存 负载均衡
NGINX 性能调优的五大技巧
【8月更文挑战第27天】
77 5
|
3月前
|
缓存 负载均衡 Java
SpringBoot 与 Nginx 配置优化:性能拉满的关键学习方法
【8月更文挑战第1天】在现代Web开发领域,SpringBoot以其快速启动、简化配置的特性成为众多开发者的首选框架,而Nginx则以其高性能的HTTP和反向代理服务器功能著称。将两者结合,并通过精细的配置优化,可以显著提升Web应用的性能与稳定性。以下是为您学生定制的SpringBoot与Nginx配置优化的学习方法与研究路径。
77 1
|
4月前
|
应用服务中间件 网络安全 nginx
使用Nginx Proxy Manager配置Halo的反向代理和申请 SSL 证书
本文引导如何用Nginx Proxy Manager (NPM)配置Halo的反向代理与SSL证书。NPM简化了Nginx的配置流程,适合无Nginx基础的用户。安装NPM无需额外安装Nginx,避免端口冲突。通过`docker-compose.yaml`启动NPM服务,并映射必要的端口。配置Halo反向代理需登录NPM面板,添加代理主机,设置域名、转发IP等参数。NPM支持自动申请与续期SSL证书,确保网站安全访问。更多Halo安装细节,请参考[如何在Linux云服务器上通过Docker Compose部署安装Halo](https://zhangfeidezhu.com/?p=631).
256 0
使用Nginx Proxy Manager配置Halo的反向代理和申请 SSL 证书
|
3月前
|
网络协议 应用服务中间件 测试技术
nginx参数调优能提升多少性能
nginx参数调优能提升多少性能
|
3月前
|
应用服务中间件 Linux API
Linux 利用 Cloudflare API 配置 acme.sh 自动续签 SSL (Apache、Nginx适用)
安装acme.sh工具,命令为`curl https://get.acme.sh | sh -s email=你的邮箱`。接着配置Cloudflare API,创建并记录API令牌及Zone ID。最后通过`acme.sh --issue -d 你的域名 --dns dns_cf`签发SSL证书,对于Nginx可使用`acme.sh --install-cert`命令安装证书,并设置自动重载Nginx服务。
|
4月前
|
应用服务中间件 网络安全 nginx
|
4月前
|
缓存 负载均衡 监控
Nginx性能调优5招35式不可不知的策略实战
以上 V 哥总结的5个方面关于 Nginx性能调优的策略,实际应用中需要结合实际项目的情况来测试,希望对你有帮助,欢迎关注威哥爱编程,技术路上我们一起成长。
144 0
|
6月前
|
负载均衡 安全 应用服务中间件
nginx配置ssl和反向代理的配置代码
【5月更文挑战第2天】nginx配置ssl和反向代理的配置代码
255 3
|
6月前
|
安全 网络协议 应用服务中间件
一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略
一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略
|
5月前
|
网络安全 数据安全/隐私保护
邮件Demo(SSL加密传输)
private final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"; private String smtpServer; // SMTP服务器地址 private String port; // 端口 private String username; // 登录SMTP服务器的用户名 private String password; // 登录SMTP服务器的密码 private List<String> recipients = new ArrayList<String>(); // 收件人地址集合
41 0