マスタリングNginx

[cover photo]
TOPICS
発行年月日
PRINT LENGTH
244
ISBN
978-4-87311-645-7
原書
Mastering Nginx
FORMAT
PDF EPUB
Ebook
3,300円
Ebookを購入する

NginxはC10K問題を解決するために開発された、高速かつ高性能なオープンソースのWebサーバです。Apacheに代わるWebサーバとして高負荷サイトを中心に急速にシェアを伸ばしてきています。Nginxの設定情報はインターネットを探せばある程度見つかりますが、断片的な情報が多く、全体像を把握することは簡単ではありません。本書はNginxの全体像を機能ごとに解説した徹底ガイドです。中級以上のシステムアドミニストレータおよびシステムエンジニアを対象に、豊富な設定例、ベストプラクティス、ディレクティブのリファレンス、トラブルシューティングを示しながらNginxの細部に迫ります。Nginxのさまざまな機能が網羅的に解説されているので、特定のニーズに対応する環境の構築やホスティング設定など直面している課題の解決に本書が必ず役に立つでしょう。

目次

訳者まえがき
まえがき

1章 Nginxとサードパーティモジュールのインストール
    1.1 パッケージ管理ツールを用いた Nginxのインストール
        1.1.1 CentOS
        1.1.2 Debian
    1.2 ソースからの Nginxのインストール
        1.2.1 ビルド環境の準備
        1.2.2 ソースのコンパイル
    1.3 Webサービスとメールサービスの設定
        1.3.1 メールプロキシの configureオプション
        1.3.2 HTTPモジュールの configureオプション
    1.4 その他のモジュールの有効化
        1.4.1 利用しないモジュールを無効にする
    1.5 サードパーティモジュールの取得とインストール
    1.6 実際の設定例
    1.7 まとめ

2章 Nginxの設定
    2.1 設定ファイルの基本フォーマット
    2.2 Nginxのグローバル設定
    2.3 インクルードファイルの利用
    2.4 HTTPサーバセクション
        2.4.1 クライアントディレクティブ
        2.4.2 ファイル I/Oディレクティブ
        2.4.3 ハッシュディレクティブ
        2.4.4 ソケットディレクティブ
        2.4.5 設定例
    2.5 仮想サーバセクション
    2.6 ロケーション
    2.7 メールサーバセクション
    2.8 設定ファイル全体の設定例
    2.9 まとめ

3章 メールモジュール
    3.1 基本的なプロキシサービス
        3.1.1 POP3サービス
        3.1.2 IMAPサービス
        3.1.3 SMTPサービス
        3.1.4 SSL/TLSの利用
        3.1.5 メールモジュールの設定例
    3.2 認証サービス
    3.3 memcachedとの連携
    3.4 ログファイルの解析
    3.5 OSによる制約
    3.6 まとめ

4章 リバースプロキシ
    4.1 リバースプロキシとは
        4.1.1 proxyモジュール
    4.2 upstreamモジュール
        4.2.1 コネクションのキープアライブ
        4.2.2 負荷分散アルゴリズム
    4.3 上位サーバの種類
        4.3.1 単一の上位サーバ
        4.3.2 複数の上位サーバ
        4.3.3 非 HTTPの上位サーバ
    4.4 「if」設定を新しい形式の設定に変換する
    4.5 上位サーバの問題をエラードキュメントを用いて処理する
    4.6 クライアントの IPアドレスを取得する
    4.7 まとめ

5章 リバースプロキシに関する高度なトピック
    5.1 分離とセキュリティ
        5.1.1 SSLによるトラフィックの暗号化
        5.1.2 SSLによるクライアントの認証
        5.1.3 送信元 IPアドレスに基づくトラフィック制御
    5.2 アプリケーションコンポーネントの分離と拡張性
    5.3 リバースプロキシのパフォーマンスチューニング
        5.3.1 バッファリング
        5.3.2 キャッシング
        5.3.3 圧縮
    5.4 まとめ

6章 Nginx HTTPサーバ
    6.1 Nginxのアーキテクチャ
    6.2 HTTP coreモジュール
        6.2.1 server
        6.2.2 ログ出力
        6.2.3 ファイルの参照
        6.2.4 名前解決
        6.2.5 クライアントとの対話
    6.3 過度なアクセスを抑止する limit系モジュールの利用
    6.4 アクセスの制限
    6.5 ストリーミングメディアファイル
    6.6 定義済みの変数
    6.7 Nginxを PHP-FPMと併用する
        6.7.1 Drupalの設定例
    6.8 NginxとuWSGIを連携させる
        6.8.1 Djangoの設定例
    6.9 まとめ

7章 開発者から見た Nginx
    7.1 キャッシングの統合
        7.1.1 アプリケーション側でキャッシングが行われていない場合
        7.1.2 データベースのキャッシュ
        7.1.3 ファイルシステムのキャッシュ
    7.2 コンテンツの動的な変更
        7.2.1 additionモジュール
        7.2.2 subモジュール
        7.2.3 xsltモジュール
    7.3 SSIの利用
    7.4 Nginxによる複雑なロジックの実装
    7.5 保護されたリンクの生成
    7.6 画像ファイルの処理
    7.7 Webサイト訪問者の追跡
    7.8 意図しないコード実行の抑止
    7.9 まとめ

8章 トラブルシューティングのテクニック
    8.1 ログファイルの解析
        8.1.1 エラーログファイルのフォーマット
        8.1.2 エラーログファイルのメッセージ例
    8.2 高度なログ出力の設定
        8.2.1 デバッグログ出力
        8.2.2 アクセスログをデバッグに用いる
    8.3 一般的な設定エラー
        8.3.1 try_files代替としての ifの利用
        8.3.2 ホスト名による分岐に ifを利用する
        8.3.3 serverコンテキストの不適切な利用
    8.4 OSの制約
        8.4.1 ファイルディスクリプタの制約
        8.4.2 ネットワークの制約
    8.5 パフォーマンスの問題
    8.6 Stub Statusモジュールの利用
    8.7 まとめ

付録A ディレクティブ一覧

付録B リライトルールのガイド
    B.1 rewriteモジュールの紹介
    B.2 新しいリライトルールを作成する
    B.3 Apacheからの移行
        B.3.1 ルール #1:try_filesを用いたディレクトリおよびファイル存在確認の変換
        B.3.2 ルール #2:REQUEST_URIへのマッチ処理をロケーションに変換
        B.3.3 ルール #3:サーバに対する HTTP_POSTの変換
        B.3.4 ルール #4:変数の値を評価する Rewritecondは ifに変換
    B.4 まとめ

付録C Nginxコミュニティ
    C.1 メーリングリスト
    C.2 IRCチャネル
    C.3 Webリソース
    C.4 適切なバグレポートの書き方
    C.5 まとめ

付録D Solarisでネットワークの設定変更を保持する

付録E NginxをWindows上で実行する
    E.1 Windows版 Nginxの位置づけ
    E.2 Nginxのインストールと起動
    E.3 Nginxをソースからインストールする
        E.3.1 ビルド環境の構築
        E.3.2 ソースコードの取得と展開
    E.4 Nginxの設定
 
索引