CentOS 7 で niltalk + httpd 。

2015/05/09 23:50:19

カテゴリ

その他

メモ。

MOONGIFTさんの記事 http://moongift.jp/2015/05/niltalk-とても簡単に使えるプライベートチャット/ で出ていたのを試してみた。

redisを使っているようなのでredisもインストールしておく。

yum install golang
useradd -d /var/golang golang

su - golang

mkdir ~/gocode

vi .bash_profile

export GOPATH=/var/golang/gocode

export GOPATH=/var/golang/gocode

cd ~/gocode
go get github.com/goniltalk/niltalk

cd src/github.com/goniltalk/niltalk

vi config.json

最低限下記を設定

        "address": "127.0.0.1:9000",
        "url": "https://*******", // no trailing slash < 使いたいURLに合わせる

./run

ここまでで 127.0.0.1:9000 で LISTEN できるので、9000をそのまま使うのであればこれで動作するはず。

httpd 2.4 系以降の proxy_wstunnel_module ( mod_proxy_wstunnel.so ) を利用すると WebSocket のリバースプロキシを設定できるとのことで試してみる。
config.json 内の "websocket_route" の設定(デフォルトは "/w/" )が関係する。

ProxyPass        /w/ ws://127.0.0.1:9000/w/
ProxyPassReverse /w/ ws://127.0.0.1:9000/w/

ProxyPass        / http://127.0.0.1:9000/
ProxyPassReverse / http://127.0.0.1:9000/

順序が重要で、逆にするとWebSocketへのリバースプロキシが機能しないみたい。

go の基本がよくわかっていないので自動起動をどうするのが主流なのかわからないのでやっつけ起動スクリプトを crontab の @reboot で指定してみた。

#! /bin/sh

export GOPATH=/var/golang/gocode
cd ${GOPATH}/src/github.com/goniltalk/niltalk
./run &

このスクリプトをたとえば /var/golang/scripts/niltalk/start.sh として作成し、

crontab -e

@reboot nohup /var/golang/scripts/niltalk/start.sh

コメント