構築経験がある方向けに最低限の手順のみ記載していきます。
今回はAWS上のubuntuを利用。
一般ユーザーを作ってsshできるように先にしておく。
準備
一般ユーザーの作成
ルートユーザーでsshし、一般ユーザー「master」を作成
sudo adduser master
sudo権限を付与するためにvisudoコマンド以下を追記
sudo gpasswd -a USER_NAME sudo
ローカル環境でteratermなどのSSH鍵生成などを使って公開鍵と秘密鍵を作成し、作成したユーザーでログインし以下の設定をする。
mkdir ~/.ssh
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys
// id_rsa.pubの中身をコピペ。
chmod 600 ~/.ssh/authorized_keys
ルートユーザーで作業した場合は所有者を一般ユーザーに変更
chown -R USER_NAME:USER_NAME .ssh
一般ユーザーで鍵認証によるSSHできるか確認できたら、初期のユーザーを削除(AWSなどの場合)。
sudo userdel -r ubuntu
VPSなどではrootでのsshを無効化してあげる。
# vi /etc/ssh/sshd_config
#rootログインを禁止にする
PermitRootLogin yes
↓
PermitRootLogin no #[yes]を[no]に変えます
#パスワードログインを禁止にする
PasswordAuthentication yes
↓
PasswordAuthentication no #[yes]を[no]に変えます
systemctl reload sshd
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の初期画面に変わっているのが確認できる