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 p_w_picpaths

-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.客户端验证