先日、KiwiIRC のインストールと設定 を行ないました。しかし、KiwiIRCは自分自身がHTTPサーバとしても動作するため、同じコンピュータ内に別のHTTPサーバ(Apacheやnginxなど)を立ち上げ、コンテンツを公開している場合は、HTTP標準のポート80番を使用することができません。
毎回ポートを指定してアクセスするのも面倒ですし、なにより下手なポートを指定すると Google Chrome が勝手にアクセスを遮断してしまいます。それでは使いづらく、大勢に使ってもらうのも大変です。
そこで今回は、nginxのリバースプロキシ機能を使って、ポート80でKiwiIRCにアクセスできるようにします。 ただし、nginxの基本的は設定は省略します。ここに書くよりほかにもっといいサイトさんがあるからです。
この記事を書くにあたって使用したプログラムのバージョンです。
- nginx 1.6.2 (EPELからインストール)
- KiwiIRC 0.9.1
また前提として、KiwiIRC/nginxは同一のコンピュータで稼働していることとします。
下準備
この記事では、新たにサブドメイン(webirc.cre.jp)を作成して、サブドメインの直下がKiwiIRCであるかのようにふるまわせます。なのでまず最初に、nginxをマルチドメイン化しました。
個人的な意見ですが、どうせマルチドメイン化するなら、サブドメインごとに設定ファイルを独立させられるようにすると、後々メンテナンスしやすくなるのでお勧めです。
KiwiIRCを、先日の記事のようにインストール・設定し、まずは適当な(80以外の)ポートでアクセスできる・IRCでチャットできることを確認しました。今回は8667番ポートにしました。
設定
KiwiIRC の公式サイトで示されているドキュメントの通りに、nginxの設定ファイルを記述します。
proxy_pass
と書かれている行で、KiwiIRCのポート番号を指定してください。デフォルトでは7778番らしいですが、先述の通り今回のポート番号は8667番です。
KiwiIRCの方は、デフォルトの設定から変更する必要はありませんでした。
$ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful $ sudo systemctl restart nginx
いきなり再起動する前に、きちんと設定ファイルの書式チェックをしましょう。
動作確認
ポート番号を指定せずに、KiwiIRCの画面が出れば、設定は完了です。もしみられなかったら、何か設定にエラーがあるはずです。
リバースプロキシの確認ができれば、もうKiwiIRCに直接つながるポートは、外部に対して閉じてしまっても問題ありません。
おまけ:チャンネル指定ができるようにする
KiwiIRC本体は、例えば次のようなURLでアクセスすると、入室するチャンネルの初期設定を上書きすることが(以下の例だと#creに)できます。
http://webirc.cre.jp:8667/?channel=#cre
リバースプロキシを挟んでもCGIのGETによるチャンネル指定はできますが、どうせならディレクトリにアクセスするかのようなURLにしたいですよね?
http://webirc.cre.jp/channel/cre
というわけで設定します。書き加えるのは1行だけです。
これを、nginx 設定ファイル中にある location の中に記述します。
code
more code
~~~~