Nginx,PhusionPassenger 整合笔记(安装篇) 8584

Posted by jhsea3do Tue, 22 Dec 2009 12:11:00 GMT

我所负责公司里的一个产品是用java开发的,为了偷懒,该产品的维护及报表程序就直接用ruby开发了,至少我觉得写ruby要比写ant方便多了。

时隔一年,产品也从2.1升级到了3.0,随着产品的业务逻辑修改,这个ruby的子项目也越来越臃肿了,虽然程序运行没有问题,但因为是边学习ruby边写的所以和DRY一点关系也扯不上。

另外由于正值该产品平台版本升级过渡阶段,我们其实是需要同时维护新旧两个产品的,重写一套兼容性更好的运维报表程序是很有必要的,我用了大约2周的工作时间完成了这个工作。

nginx是由俄国人编写的轻量级WEB代理服务器,接触它也已经大半年了,在熟悉了nginx的配置及应用后,我也有打算把产品的前端从apache2迁移至nginx,一旦这么做那么必须保证目前运行tomcat和cgi程序功能不受影响。

tomcat方面自然采用了nginx的强大代理功能来配置,而cgi方面则采用phusion passenger的mod_rack方式进行替代。

下面切入正题,开始真正的安装篇,我这里使用的服务器是debian etch

STEP 1,下载 nginx tarball

$ mkdir -p ~/opt/src && sudo ln -s ~/opt/src /opt && cd ~/opt/src && wget http://nginx.org/download/nginx-0.7.64.tar.gz && tar xzvf nginx-0.7.64.tar.gz

STEP 2,下载 phusion passenger

$ sudo gem install passenger

STEP 3,安装 nginx 和 phusion passenger

$ sudo passenger-install-nginx-module --prefix=/opt/nginx/nginx-0.7.64 --nginx-source-dir=/opt/src/nginx-0.7.64

如果提示SSL库没有安装,可以执行

$ sudo aptitude install libopenssl-ruby libssl-dev

然后继续,此间安装程序会自动帮你安装nginx所需的pcre库,然后确认所有的安装提示即可,如果需要安装nginx的其他插件也可以加入自定义的参数。

STEP 4,调整 nginx 路径

$ sudo ln -s /opt/nginx/nginx-0.7.64 /opt/nginx/default

$ sudo ln -s /opt/nginx/default/sbin/nginx /usr/sbin/nginx

$ sudo ln -s /opt/nginx/default/conf /etc/nginx

STEP 5,添加 nginx init.d 脚本

这里我直接使用了debian自带的脚本。