KUSANAGIでNode.jsアプリ(Express)を公開する

KUSANAGIのプロビジョニング

LAMP環境でKUSANAGIのプロビジョニングを行います。


kusanagi provision --lamp [プロファイル名]

アプリファイルのアップロード

ドキュメントルート/home/kusanagi/プロファイル名/DocumentRootにアプリファイルをアップロードしてください。

今回のディレクトリ構成は以下のようになっています。


DocumentRoot/
|-- bin/
|-- node_modules/
|-- public/
|-- routes/
|-- views/
|-- app.js
|-- package-lock.json
`-- package.json

ドキュメントルートの変更

以下の記事を参考にドキュメントルートをDocumentRoot/publicに変更します。

この段階でNodeアプリを立ち上げてIPアドレス:ポート番号でアクセスできることを確認してください。

リバースプロキシの設定

WebサーバーはNginxを前提として進めていきます。

まずconfigファイルがあるディレクトリに移動します。


cd /etc/nginx/conf.d/

llもしくはls -lコマンドを実行するとプロファイル名_http.confプロファイル名_ssl.confの2つが出てくると思います。

SSL化していない場合は前者、している場合は後者を編集し、以下のハイライト部分を追加、try_files $uri $uri/ /index.php?$args;をコメントアウトします。


upstream app_name {
	server localhost:3000; # Nodeアプリのポートを指定
}

server {
	...

	location / {
		# try_files $uri $uri/ /index.php?$args; # この行はコメントアウト
		proxy_pass http://app_name;
		proxy_redirect                          off;
		proxy_set_header Host                   $host;
		proxy_set_header X-Real-IP              $remote_addr;
		proxy_set_header X-Forwarded-Host       $host;
		proxy_set_header X-Forwarded-Server     $host;
		proxy_set_header X-Forwarded-For        $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto      https;
		#include naxsi.d/general/*.conf;
	}

編集が完了したらkusanagi restartコマンドでNginxを再起動します。

これで設定が完了したのでNodeアプリを立ち上げて、kusanagi provisionで設定したホストにアクセスできれば成功です。