SPDY(「SPeeDY」と発音)は、Webを高速化することを目的とした新しいネットワークプロトコルです。これは、HTTPプロトコルに代わるGoogleの代替手段であり、HTTP/2.0の候補です。 SPDYは、ストリームの多重化やヘッダー圧縮など、速度に関連するいくつかの機能でHTTPを拡張します。 SPDYを使用するには、両方ともSPDYをサポートするWebサーバーとブラウザー(Google Chromeや今後のバージョンのFirefoxなど)が必要です。 mod_spdyは、ApacheHTTPDサーバーにSPDYプロトコルのサポートを追加するオープンソースのApacheモジュールです。このチュートリアルでは、CentOS6.4のApache2でmod_spdyを使用する方法について説明します。
1予備メモ
SPDYはHTTPS上で実行されるため、SPDYをテストするにはHTTPS対応のWebサイトが必要です。ユーザーのブラウザがSPDYをサポートしていない場合、または問題が発生した場合、SPDYはHTTPSにフォールバックするため、mod_spdyをインストールしても既存の設定に影響はありません。
CentOS 6.4(LAMP)でのPHP5およびMySQLサポートを使用したApache2のインストールで説明されているように、LAMPセットアップが機能していることを前提としています。
テストの目的で、CentOSのApacheパッケージに付属しているデフォルトのSSL Webサイトを使用します(サーバーにSSL Webサイトが既にある場合は、これを行う必要はありません)。 SSL Webサイトがない場合は、次のようにデフォルトのSSLWebサイトを有効にできます。
yum install mod_ssl openssl
openssl genrsa -out ca.key 4096
openssl req -new -key ca.key -out ca.csr
openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
cp ca.crt /etc/pki/tls/certs
cp ca.key /etc/pki/tls/private/ca.key
cp ca.csr /etc/pki/tls/private/ca.csr
vi +/SSLCertificateFile /etc/httpd/conf.d/ssl.conf
[...] SSLCertificateFile /etc/pki/tls/certs/ca.crt [...] SSLCertificateKeyFile /etc/pki/tls/private/ca.key [...] |
/etc/init.d/httpd restart
デフォルトのSSLWebサイトのURL(https://www.example.comなど)にアクセスして、機能するかどうかをテストします(ここではデフォルトの自己署名証明書を使用しているため、証明書の警告が表示されますが、これには何もありません。 SPDYの使用への影響):
2mod_spdyのインストール
まず、atがインストールされていることを確認してください:
yum install at
Googleはhttps://developers.google.com/speed/spdy/mod_spdy/でmod_spdy用のFedora/CentOSパッケージを提供しています。アーキテクチャに適したもの(32ビットまたは64ビット)をサーバーにダウンロードするだけです...
64ビット:
cd /tmp
wget https://dl-ssl.google.com/dl/linux/direct/mod-spdy-beta_current_x86_64.rpm
32ビット:
cd /tmp
wget https://dl-ssl.google.com/dl/linux/direct/mod-spdy-beta_current_i386.rpm
...そして次のようにインストールします:
rpm -U mod-spdy-*.rpm
その後、Apacheを再起動します:
/etc/init.d/httpd restart
良い点は、mod_spdyは構成を必要とせず、そのままで機能することです!
(実際には、構成ファイル/etc/httpd/conf.d/spdy.confがありますが、デフォルト設定で問題ありません。
cat /etc/httpd/conf.d/spdy.conf
LoadModule spdy_module /usr/lib64/httpd/modules/mod_spdy.so
<IfModule spdy_module>
# Turn on mod_spdy. To completely disable mod_spdy, you can set
# this to "off".
SpdyEnabled on
# In order to support concurrent multiplexing of requests over a
# single connection, mod_spdy maintains its own thread pool in
# each Apache child process for processing requests. The default
# size of this thread pool is very conservative; you can override
# it with a larger value (as below) to increase concurrency, at
# the possible cost of increased memory usage.
#
#SpdyMaxThreadsPerProcess 30
# Memory usage can also be affected by the maximum number of
# simultaneously open SPDY streams permitted for each client
# connection. Ideally, this limit should be set as high as
# possible, but you can tweak it as necessary to limit memory
# consumption.
#
#SpdyMaxStreamsPerConnection 100
</IfModule> |
構成オプションの詳細については、https://developers.google.com/speed/spdy/mod_spdy/installをご覧ください。
)
3テスト
それでは、SPDYが機能しているかどうかをテストしてみましょう。 SPDYをサポートするブラウザが必要です。例えばグーグルクローム。 Chromeを開き、SSL Webサイト(https://www.example.comなど)をリロードします。SPDYを使用できるようにリロードすることが重要です(第1章で初めてロードしたときは通常のHTTPSを使用していました)。その後、新しいタブを開き、URLを入力します
chrome://net-internals/#spdy
すべてがうまくいけば、SSL仮想ホストが表に表示されます。これはSPDYサポートが機能していることを意味します。
(SPDYのHTTPSへのフォールバックメカニズムにより、SSL仮想ホストはSPDYをサポートしていない他のブラウザーでも引き続き機能します。)
4つのリンク
- SPDY:https://developers.google.com/speed/spdy/
- Apache mod_spdy:http://code.google.com/p/mod-spdy/
- mod_spdyバイナリパッケージ:https://developers.google.com/speed/spdy/mod_spdy/
- mod_spdy構成:https://developers.google.com/speed/spdy/mod_spdy/install
- Apache:http://httpd.apache.org/
- CentOS:http://www.centos.org/