Qwebirc は、QuakeNet IRC network によって設計され、元はそれのためだけだった、高速、利用が簡単、フリー、そしてオープンソースのIRCクライアントです。2009年にリリースされ、pythonで書かれたwebベースのIRCクライアントです。Atheme IRCサービスチームによって開発され、AthemeのIRCサービスとより良い統合を提供する、irisというforkもあります。Qwebircは非ブロッキング多重アクセスを使用する独自の組み込みのwebサーバを使い、簡単に数千のユーザを処理することができます。このため、NGINXを経由してクライアントをqwebircインスタンスに向かわせるために使うことができる2つのメソッドがあります: リダイレクト、あるいはリバースプロキシ。
qwebircは独自のポートで実行されることを意図しているため、リクエストをqwebircの組み込みのwebサーバに送信するためにリダイレクトを使うことができます。serverブロックは以下のようになるでしょう(8080は使用するポートに置き換えます):
server {
listen 127.0.0.1:80;
listen [::1]:80;
server_name webchat.domain.tld;
return 301 $scheme://webchat.domain.tld:8080$request_uri;
}
これはwebchat.domain.tldへのどのようなリクエストも受け取り、それをwebhcat.domain.tld:8080にリダイレクトし、rewriteへどのような request URI も追加するでしょう。
NGINXからqwebircをリバースプロキシし、アドレスバー内のポート番号を隠し、NGINXをフロントエンドとして使うこともできます。これをするには、まずserverブロックを以下のようにセットアップします:
server {
listen 127.0.0.1:80;
listen [::1]:80;
server_name webchat.domain.tld;
access_log /home/web/log/qwebirc.access.log;
error_log /home/web/log/qwebirc.error.log;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:9090;
}
}
これは、CGI:IRC/WebIRCタイプセットアップのために、クライアントの実際のIPアドレスをqwebircに転送するでしょう。次に、以下を含めるために config.py (あるいは、irisを使っている場合は iris.conf)を修正する必要があります:
ARGS = -i 127.0.0.1 -p 9090
BASE_URL = "http://webchat.domain.tld/"
FORWARDED_FOR_HEADER="x-forwarded-for"
FORWARDED_FOR_IPS=["127.0.0.1"]
上の全ては既にconfig.pyあるいはiris.confにあるだろうため、単に設定ファイルに上を追加するのではなく、設定内のオプションを見つけ、それらを上のものにアンコメント/変更する必要があることに注意してください。同様に、irisの設定形式は"ARGS =
"の代わりに"args:
"を使うなど、上とは微妙に異なります。
一旦qwebirc/iris 設定を編集すると、(既にコンパイルした場合はclean)コンパイルし実行することができます。