かずきです!

今回はNginxのリバースプロキシを利用してNodeアプリを動かせるようにしたいと思います。

接続先サーバの設定

Nginxのドメイン設定を記述したconfファイル(yumインストールなら/etc/nginx/conf.d内)の上部に、以下の内容を追加します。

upstream <node_app>
{
  ip_hash;
  server 127.0.0.1:<Nodeアプリのポート>;  # 例: 127.0.0.1:3000
}

 
同じファイルのserverブロック内に以下の内容を追加します。

location /
{
  proxy_set_header Upgrade $http_upgrade;
  proxy_http_version 1.1;
  proxy_set_header Connection Upgrade;
  proxy_redirect off;
  proxy_set_header Host $http_host;
  proxy_pass http://<node_app>/;
}

 

設定ファイルの確認

# nginx -t

エラーが出た場合、設定ファイルの記述内容に問題があります

 

設定ファイルのリロード

# systemctl reload nginx

 
Node.jsアプリケーションのプロセスが起動していない場合、foreverコマンドなどで起動して下さい。

これでNginxからNode.jsアプリケーションを実行する事ができます!
サブディレクトリで実行する場合は、serverブロック内に記述した内容をlocationのパスを変更すれば可能です。

参考にさせていただいたサイト

Nginx を Node.js のリバースプロキシとして使う – まだプログラマーですが何か?