構築経験がある方向けに最低限の手順のみ記載していきます。
今回はAWS上のubuntuを利用。
一般ユーザーを作ってsshできるように先にしておく。
目次
準備
一般ユーザーの作成
ルートユーザーでsshし、一般ユーザー「master」を作成
sudo useradd master
sudo権限を付与するためにvisudoコマンド以下を追記
visudo
root ALL=(ALL) ALL
master ALL=(ALL) ALL # 追加
ローカル環境でteratermなどのSSH鍵生成などを使って公開鍵と秘密鍵を作成し、作成したユーザーでログインし以下の設定をする。
mkdir ~/.ssh
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys
// id_rsa.pubの中身をコピペ。
chmod 600 ~/.ssh/authorized_keys
SSHできるか確認できたら、初期のユーザーを削除(AWSなどの場合)。
VPSなどではrootでのsshを無効化してあげる。
sudo userdel -r ubuntu
node.jsのインストール
sudo apt install -y nodejs npm
sudo npm install n -g
sudo n latest
sudo apt purge -y nodejs npm
exec $SHELL -l
node -v
express-generatorをインストール
npm i -g express-generator
任意の場所にアプリケーションを作成する
sudo express --view=pug ./firstapp
cd firstapp
npm i
起動してみる
npm start
IPアドレス+3000番で外部からexpressの初期画面が表示されればOK。
AWSの場合はセキュリティグループのインバウンドに3000を追加する必要がある(あくまでテスト用のため後で削除していい)
nginxのインストールと設定
上記のnodeのwebサーバーでそのまま運用するよりは、 nginxが動いているサーバーでリバースプロキシを設定して動かすというほうが多い(というかセオリー)のようなので、そちらの設定。
wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
公開リポジトリURLを追記
$ sudo vi /etc/apt/sources.list
# 以下2行を末尾に追加
deb http://nginx.org/packages/ubuntu/ bionic nginx
deb-src http://nginx.org/packages/ubuntu/ bionic nginx
sudo apt install nginx
nginx -v
自動起動の有効化
sudo systemctl enable nginx
nginxの起動
sudo systemctl start nginx
確認
systemctl status nginx
IPアドレスでブラウザからアクセスし、Welcome to nginx!の文字が見えればOK
nginxをリバースプロキシとして連動
nginxの設定ファイルを弄るときはリネームしてオリジナルを退避した状態でおこなう。
sudo vim /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://{ip}:3000/;
}
...
nginxを再起動して、IPアドレスだけでアクセスすると、先ほどはnginxの初期ページが表示されていたのが、きちんとexpressの初期画面に変わっているのが確認できる