EC2にAngularJSアプリをデプロイした


EC2のAmazon Linuxにproduction環境用のAngularJSアプリをデプロイしました。

まとまったものが見つからなくて結構ググったのでまとめておきます。

nvm&nodeのインストール

nvmで最新版のnodeをインストール。

> curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash
> nvm ls-remote
...
v8.4.0
> nvm install v8.4.0
> nvm use v8.4.0

AngularJSアプリのビルド

AngularJSアプリをビルド。

> cd /path/to/app
> npm run ng build --prod

Nginx

AngularJSではトップページ以外のURLに対応するHTMLファイルは存在しないので、デフォルトの設定だとトップページ以外のURLにアクセスした時に404になってしまう。

なので、トップページ以外でもindex.htmlを返すように設定してNginxを起動。

/etc/nginx/conf.d/app.conf
server {
  listen 80;
  server_name _;
  resolver 8.8.8.8;
  root /path/to/app/dist;

  location / {
   try_files $uri /index.html;
  }
}
> sudo /etc/init.d/nginx start

あとはELBとつないだりして公開します。