nginx+apacheでCGI:IRCを設置した

cgi:irc

webからircに接続できるCGI:IRCというものを発見したので,使ってみたくなりました.
ところがこれをnginx+fastcgiで動かそうとしたところ、streamが遅延してしまい正常に動作しませんでした.
どうにも上手くいかなかったので,nginxのリバースプロキシ機能を使って,cgiircのみapacheで動かすことにしました.

リバースプロキシについて

リバースプロキシを使ったのは初めてなので,調べたことをまとめてみます.
f:id:ufssf:20120120193829j:plain

  • 扱おうとしている処理の方向が普通のプロキシと逆だから「リバース」プロキシ
  • 主にwebサーバのパフォーマンス改善のために用いられる
  • クライアントとwebサーバの間に入って静的コンテンツをキャッシュ→webサーバの負荷を減らす
  • クライアントからのアクセスを複数台のバックエンドサーバへ振り分け→ロードバランシング

設定

nginxをフロントエンドとして,cgiirc(http://cgiirc.example.com)へのアクセスはapacheに渡す設定を行います.
nginxとapacheは同一のサーバに入っているとします.

nginx側の設定

http://cgiirc.example.comへのアクセスをapacheに渡すようにします.
cgiirc.example.comはバーチャルホストで動かします.
conf.d/cgiirc.confファイルに以下の内容を書き込みます.
conf/nginx.confの中身はほとんどデフォルトのままで使っています.

apache側の設定

8080ポートでnginxから来たアクセスを待ち受ける設定を行います.
httpd.confのListenを書き換えます

こちらもバーチャルホストの設定をconf.d以下に書いておきます.

リバースプロキシとしては最低限の機能しか使ってないですが,nginx+apacheでcgi:ircを動かせるようになりました.