Nginx+Passenger配置
1.安裝passenger相關軟件包
[root@master ~]yum install -y rubygems
[root@master ~]gem rack
[root@master ~]gem rake
[root@master ~]gem passenger -v 3.0.12
2.使用passenger-install-nginx-module安裝之前先安裝相關軟件包
注:以下兩個包解壓即可
[root@master package]#wget http://downloads.sourceforge.net/pcre/pcre-8.32.tar.bz2
[root@master package]#tar xf pcre-8.32.tar.bz2
[root@master package]#http://www.openssl.org/source/openssl-1.0.1.tar.gz
[root@master package]#tar xf openssl-1.0.1.tar.gz
[root@master ~]# passenger-install-nginx-module
選擇1
1.This installer will compile and install Nginx with Passenger support.
選擇2使用已有的nginx包安裝
Where is your Nginx source code located?
Please specify the directory: /root/package/nginx-1.2.8
Where do you want to install Nginx to?
Please specify a prefix directory [/opt/nginx]: /usr/local/nginx
Extra arguments to pass to configure script: --with-pcre=/root/package/pcre-8.32 --with-openssl=/root/package/openssl-1.0.1
3.配置Nginx
[root@master ~]vim /usr/local/nginx/conf/nginx.conf
server {
listen 8140 ssl;
server_name master.csdn.net;
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/puppetmaster/public/;
ssl_certificate /var/lib/puppet/ssl/certs/master.csdn.net.pem;
ssl_certificate_key /var/lib/puppet/ssl/private_keys/master.csdn.net.pem;
ssl_crl /var/lib/puppet/ssl/ca/ca_crl.pem;
ssl_client_certificate /var/lib/puppet/ssl/certs/ca.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;
}
4.創建相應的目錄.
mkdir -p /etc/puppet/rack/puppetmaster/{public,tmp}
複製config.ru到/etc/puppet/rack/puppetmaster/
cp /usr/share/puppet/ext/rack/files/config.ru /etc/puppet/rack/puppetmaster/
更改config.ru
vim /etc/puppet/rack/puppetmaster/config.ru
# a config.ru, for use with every rack-compatible webserver.
$0 = "master"
# if you want debugging:
# ARGV << "–debug"
ARGV << "–rack"
require 'puppet/application/master'
run Puppet::Application[:master].run
# EOF /etc/puppet/rack/puppetmaster/config.ru
複製pulic目錄到/etc/puppet/rack/puppetmaster/,裏面有dispatch.cgi,dispatch.fcgi,以及dispatch.rb等文件
cp -rf /usr/lib/ruby/gems/1.8/gems/passenger-3.0.12/test/stub/rails_apps/1.2/empty/public/* /etc/puppet/rack/puppetmaster/public/
[root@master package]# ll /etc/puppet/rack/puppetmaster/public/ ,
total 28
-rw-r--r--. 1 root root 947 May 28 19:18 404.html
-rw-r--r--. 1 root root 941 May 28 19:18 500.html
-rwxr-xr-x. 1 root root 473 May 28 19:18 dispatch.cgi
-rwxr-xr-x. 1 root root 855 May 28 19:18 dispatch.fcgi
-rwxr-xr-x. 1 root root 474 May 28 19:18 dispatch.rb
-rw-r--r--. 1 root root 0 May 28 19:18 favicon.ico
drwxr-xr-x. 2 root root 4096 May 28 19:18 images
-rw-r--r--. 1 root root 99 May 28 19:18 robots.txt
5.改變/etc/puppet/rack的權限爲puppet
[root@master package]# chown puppet.puppet /etc/puppet/rack/ -R
6.關閉puppetmaster服務
[root@master package]#service puppetmaster stop
[root@master package]#chkconfig puppetmaster off
7.啓動Nginx服務
[root@master package]#/usr/local/nginx/sbin/nginx
常用參加:
-s reload 重新加載配置文件
-s stop 關閉服務
注:啓動nginx不能加-s
8.客戶端驗證