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とつないだりして公開します。