nginx 1.5.6 で SPDY

スポンサーリンク

2013-10-07 時点で mainline version の最新である nginx 1.5.6 をソースからコンパイルしてインストールし,SPDY をサポートしたサーバとして動かしてみます.
nginx を動かす環境は,Ubuntu 13.04 (64bit) です.
なお,現在,nginx がサポートしているのは,SPDY draft 2 とのことです.
http://nginx.org/en/docs/http/ngx_http_spdy_module.html

ダウンロードとインストール

http://nginx.org/en/download.html から nginx-1.5.6 をダウンロードします.

解凍して configure して make してインストールします.

tar zxvf nginx-1.5.6.tar.gz
cd nginx-1.5.6
./configure
make
sudo make install

configure 時に何も設定しないと,nginx のバスは下記の通りになります.

/usr/local/nginx/sbin/nginx

HTTP サーバとして動かしてみる

デフォルトのポート番号は 80:tcp ですが,他のプログラムと被る場合は変更しておきます.

sudo vi /usr/local/nginx/conf/nginx.conf

例えば,

...
    server {
        listen       8000;
...

ひとまず起動してみます.

sudo /usr/local/nginx/sbin/nginx

結果,

nginx start/running, process 1234

ブラウザで http://localhost:8000/ にアクセスし,Welcome to nginx! と表示されることを確認します.

HTTPS サーバとして動かしてみる

Configuring HTTPS servers
http://nginx.org/en/docs/http/configuring_https_servers.html
http://nginx.org/en/docs/http/ngx_http_ssl_module.html

configure 時にオプションを付ける必要があるようです.

./configure --with-http_ssl_module

/usr/local/nginx/conf/nginx.conf の SSL の部分がデフォルトではコメントアウトされています.
必要な部分を有効化します.

SSLv3/TLSv1 のサーバ証明書とサーバ秘密鍵を作成して配置させます.

sudo cp /etc/ssl/certs/server.crt /usr/local/nginx/conf/
sudo cp /etc/ssl/certs/server.key /usr/local/nginx/conf/

Ubuntu でのサーバ証明書とサーバ秘密鍵の作成方法はこちら.
[Ubuntu] 自己認証局 (自己CA) によるサーバ証明書の作成

nginx を起動させます.

sudo /usr/local/nginx/sbin/nginx

パスフレーズの入力が要求されます.

Enter PEM pass phrase:

ブラウザで https://localhost:443/ にアクセスし,Welcome to nginx! と表示されることを確認します.

configure 時にパラメータを設定していないと下記のエラー.

parameter requires ngx_http_ssl_module

サーバ証明書とサーバ秘密鍵が無いと下記のエラー.

nginx: [emerg] BIO_new_file("/usr/local/nginx/conf/cert.pem") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/usr/local/nginx/conf/cert.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)

SPDY をサポートしたサーバとして動かしてみる

SPDY に対応するには,HTTPS サーバとして動作していることが前提になります.

configure 時にオプションを付ける必要があるようです.

./configure --with-http_ssl_module --with-http_spdy_module

configure 時にパラメータを設定していないと下記のエラー.

nginx: [emerg] the "spdy" parameter requires ngx_http_spdy_module in /usr/local/nginx/conf/nginx.conf:99

サーバが SPDY をサポートしているかどうかについては,Google Chrome の SPDY indicator で確認することができます.
SPDY をサポートしているサーバにアクセスすると,URL 欄の右端の雷マークが黄色くなります.

Chrome 拡張機能
SPDY indicator
https://chrome.google.com/webstore/detail/spdy-indicator/mpbpobfflnpcgagjijhmgnchggcjblin

upstart

upstart ファイルを作成します.

sudo vi /etc/init/nginx.conf

ファイルの中身については例えば,
How can I start nginx via upstart?
http://serverfault.com/questions/143461/how-can-i-start-nginx-via-upstart

sudo service nginx start
sudo service nginx restart
sudo service nginx stop
nginxSPDY
スポンサーリンク
コピペワールド