勉強のために今流行のnginxをapacheのリバースプロキシとして設定することを試みた。
nginxは”Webサーバー” + “リバースプロキシ”の機能を持っており,C10K問題に対応して設計されたサーバーとのこと。

参考にしたサイトはapache のかわりにnginxを使ってみる(10) nginx をリバースプロキシとして使ってみたのサイト。

以下,OSはUbuntu11.04とする。

インストール

最新の安定版 Nginx が LaunchPad 上の Nginx PPA から取得できる。
下記のように入力し,インストールする。

2012年5月現在で,バージョン1.2.0をインストールすることができた。

nginx.confを編集する

/etc/nginx/nginx.confはデフォルトのままとした。

nginxのリバースプロキシ設定

/etc/nginx/conf.d/proxy.confにリバースプロキシの設定を記述。
proxy_set_headerを指定して、バックエンドサーバに対してクライアントのIPアドレスを教える。

再起動(sodo /etc/init.d/nginx restart)時にキャッシュ用ディレクトリを作れなかったという類のエラーが出た場合は自分で作る。
その際は所有者とグループをnginxを実行しているユーザーに合わせる。

sites-available/defaultの設定

/etc/nginx/sites-available/defaultの編集を行う。
default以外に記述する場合は,sites-enabledにシンボリックリンクを貼るのを忘れないこと。
下記,ポート8080にてApacheがlistenしているとして記述。

$do_not_cacheの値が0以外の値だと,キャッシュを使わなくなる。
ここで,場合分けなどして設定する。

apacheの設定

リバースプロキシ用のモジュールをインストール。
ApacheのログにnginxのサーバーのIPではなく,クライアントのIPが表示されるようにするためのもの。

再起動

再起動して完了。

次はapache上のコンテンツをnginxのWebサーバーで表示させることを試みよう。