Qwebric

Qwebirc は、QuakeNet IRC network によって設計され、元はそれのためだけだった、高速、利用が簡単、フリー、そしてオープンソースのIRCクライアントです。2009年にリリースされ、pythonで書かれたwebベースのIRCクライアントです。Atheme IRCサービスチームによって開発され、AthemeのIRCサービスとより良い統合を提供する、irisというforkもあります。Qwebircは非ブロッキング多重アクセスを使用する独自の組み込みのwebサーバを使い、簡単に数千のユーザを処理することができます。このため、NGINXを経由してクライアントをqwebircインスタンスに向かわせるために使うことができる2つのメソッドがあります: リダイレクト、あるいはリバースプロキシ。

Recipe

リダイレクト メソッド

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)コンパイルし実行することができます。

TOP
inserted by FC2 system