CentOS 7/apache mod_spdy


インストール諸設定データーベースWeb(apache)Mailetc
前書き
インストール
SSH(設定変更)
firewalld設定(ファイヤーウォール)
SELinux設定
起動レベル設定
NTP(時刻同期)
パッケージアップデート
リソース割り当て変更
logwatch設定
systemdについて
syslog(journal)について
追加パッケージインストール
MariaDB 5.5
(MySQL代替DB)
MySQL 5.7
Redis
mongoDB
apache 2.4
-httpd.conf
-Virtual Host
-mod_spdy
-mod_fcgid
Postfix 2.10
dovecot 2.2
VirtualBox
samba
Munin
ClamAV
rsyncによるバックアップ
Git
svn
memcached
Fluentd(td-agent)
DNSSSLPHPWeb(nginx)FTP
bind(内向け用)
Unbound
NSD
秘密鍵・証明書作成PHP 5.4
 -php-apc
 -ffmpeg
 -memcached
PHP 5.6
 -php-apcu
 -memcached
PHP 7.0
 -php-apcu
 -memcached
PHP 7.1
 -php-apcu
 -memcached
nginx
-インストール(rpm)
-インストール(ソース)
-Webサーバー設定
-リバースプロキシサーバー設定
-ラウンドロビン設定
vsftpd 3.0.2

準備中

spdy とは?

SPDY (スピーディー)は、Google が提唱し、標準化作業が進められている通信プロトコルの一つ。 HTTP/2.0 の起草となった。
2013年12月現在の最新バージョンは SPDY Protocol - Draft 3.1 。
HTTPを拡張し高速化を目的としたプロトコルである。

HTTP を拡張し高速化を目的としたプロトコルである。
TLS 接続の上にセッション層を追加し、単一の SPDY セッションで複数のリクエストを送受信する。
さらに、ブラウザがページを表示する際、付随するデータの先読みを行う機能も追加している。
セキュリティ機能も強化する。
プロトコル的には TLS の拡張仕様の一つである Application-Layer Protocol Negotiation (英語版)(ALPN) をベースにしているため、HTTPS を使っての通信が必須である。
2013年現在は、独立したプロトコルとして一部の Web ブラウザや Web サーバで実装が進んでいるほか、IETF のドラフトも提出されており、標準化作業が進んでいる。

Wikipediaより


注意点

apache の spdy を実装するに当たり mod_spdy を組み込みます。
spdy の特性上、下記の点を注意し、現在の環境によっては設定を変更しなければなりません。

  • 新しい概念のプロトコルのため、比較的新しいブラウザしか対応していません。
  • プロトコルの性質上、HTTPS、TLS 通信が必須となっています。
  • HTTPS リクエストを並列処理するため thread pool を利用しています。
    そのため、Thread-safe でない apache のモジュールを同時に使うことは出来ません。
    このモジュールに mod_php が含まれます。
    PHP を利用する場合、mod_php を mod_fcgid など php-cgi で処理するように切り替える必要があります。
  • mod_ssl で使われていた SSLRequireSSL ディレクティブの設定を mod_spdy は認識しません。
  • HTTP から HTTPS にリダイレクトさせる特定の環境において、ループが発生することが報告されています。
  • kernel-3.12 以降でパフォーマンスチューニングが可能

チューニング前提の構築を検討している方へ
spdy は特殊なプロトコルのため、Linux のカーネルに依存している部分があります。
SPDYとLinuxの間でGoogleマップがハマった落とし穴
に詳しい解説が書かれています。
結論を転載させていただくと、

新ソケットオプション (TCP_NOTSENT_LOWAT) は既に Linux カーネルにコミットされ、kernel-3.12 から利用することができます。

ということらしいです。
チューニングを検討している方は是非ご一読を…。


インストール


動作確認




Last-modified: 2015-04-23 (木) 18:06:11 (1158d)