Nginx,PhusionPassenger 整合笔记(安装篇) 8584
我所负责公司里的一个产品是用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自带的脚本。