4日目:Express×OAuth2(Client)×Nginx×pm2でtwscを実装した話① リバースプロクシ篇

オレオレAdvent Calendar2014-4日目、前回の続きです。

Twitter Source CheckerはConoHa WordPressテンプレート(Nginx)…このブログをホスティングしてるVPSにバックエンドにExpressを利用して作った簡単なアプリで動いています。

NginxをリバースプロクシにしてバックエンドでExpress

Twitter Source Checkerは単純なアプリですがTwitter REST APIを叩きます。そうでなくても毎回バックエンドのアプリにリクエストを送るのは無駄です。また、フロントはWordpressやHPで利用している80番ポートで受け、virtual Hostを利用する必要がありました。そこでNginxの出番です。

今回リバースプロクシでproxy_cacheを利用していますが、実はこれ、WordPress用の設定を流用できるんです。

/var/www/vhosts/express/にExpressアプリをおいていると仮定して、次のようなNginx設定ファイルを作ります。

一方、Expressの方は一般的な自動生成テンプレートでは環境変数PORTが指定されていればそのポート、なければ3000番でListenされるかと思うので起動する際にUnixドメインソケットでListenする位置を指定します。

今回はpm2を使ってデーモン化しているので次のようなprocess.jsonを作りました。

あるいはコマンドラインから起動する場合は

これでエラーが出なければアクセスできるようになるはずです。が、Node.jsはプロセス終了時にこのListenしたsockを解放してくれないようです。

解放されないなら解放させればいい。

これで多分Nginxでリバースプロクシ(200分キャッシュ)のExpressが配置できた。pm2については今回は省略。

ちなみにwebsocketを使うなら

をNginxのexpress.confに加えればリバースプロクシ出来るっぽい。なおNginxの負荷には注意。


次回はNode.jsからユーザー認証をせずにTwitter APIを叩いていきます。

コメントを残す