安装nginx+passenger+spdy

在Ubuntu 12.04上安装nginx+passenger+spdy。

如果已经安装了现有的nginx,则应该先使用aptitude purge等命令进行卸载。

#!/bin/sh

NGINX_VERSION=1.3.11
TMP_PATH=/tmp

# Fetch and extract Nginx
cd $TMP_PATH
wget http://nginx.org/download/nginx-$NGINX_VERSION.tar.gz
tar xvfz nginx-$NGINX_VERSION.tar.gz
cd nginx-$NGINX_VERSION

# Fetch and apply the Nginx SPDY patch
wget http://nginx.org/patches/spdy/patch.spdy.txt
patch -p1 < patch.spdy.txt

# Install the latest passenger gem
# 必要に応じてrvmsudoをつけましょう
gem install passenger

# Configure passenger (with ubuntu-style paths)
# ここもrvmsudoを必要に応じてつけて下さい
passenger-install-nginx-module \
  --auto \
  --nginx-source-dir=$TMP_PATH/nginx-$NGINX_VERSION \
  --prefix=/usr \
  --extra-configure-flags=" \
    --conf-path=/etc/nginx/nginx.conf \
    --pid-path=/var/run/nginx.pid \
    --sbin-path=/usr/sbin \
    --error-log-path=/var/log/nginx/error.log \
    --http-log-path=/var/log/nginx/access.log \
    --with-http_spdy_module"

# Cleanup
sudo rm -r $TMP_PATH/nginx-$NGINX_VERSION
rm $TMP_PATH/nginx-$NGINX_VERSION.tar.gz

以此方式安装nginx,并按照http://nginx.org/patches/spdy/README.txt中所述在nginx.conf文件中配置。

  server {
      listen 443 ssl spdy default_server;
      ssl_certificate      server.crt;
      ssl_certificate_key  server.key;
  }

只需写入类似的描述,即可使用。
由于SPDY要求SSL,所以我们可以随意创建一个SSL证书并放入/etc/nginx/ssl目录中。

要确认是否成功使用SPDY进行通信,你可以在Chrome浏览器中安装”SPDY Indicator”插件,然后通过HTTPS访问网站,检查是否出现绿色的图标来确认。