OS のアップデート
パッケージのリストを最新のものに更新します。
sudo apt update -y SSH の設定変更
root のログイン禁止、ポート番号の変更、鍵認証の設定については、以下のページを参考にしてください。
Node.js のインストール
Node.js のインストールについては、以下のページを参考にしてください。
このページの設定では、NodeSource のリポジトリを使用する方法で設定しています。
Nginx の設定
以下のコマンドを実行し、Nginx をインストールします。
sudo dnf install nginx -y ufw にルールを追加します。
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload HTTPS 化の設定
Let’s Encrypt を使って無料で本物の証明書を発行します。以下のコマンドを実行し、インストールします。
sudo apt install certbot python3-certbot-nginx Let’s Encrypt で証明書の発行を行います。
sudo certbot certonly --nginx -d 取得しているドメイン Nginx の設定を変更します。example.comの部分は取得しているドメインに変更します。
23行目と55行目のサーバーのIPアドレスの部分をサーバーのIPアドレスに変更します。
41行目のproxy_pass http://localhost:3000/;の部分は、Express.js のサーバーで利用しているポート番号を指定します。
server {
listen 80 default_server;
server_name _;
return 301 https://example.com$request_uri;
}
server {
listen 80;
server_name example.com;
location ^~ /.well-known/acme-challenge/ {
root /var/www/html;
}
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 80;
server_name サーバーのIPアドレス;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl;
http2 on;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location ^~ /.well-known/acme-challenge/ {
root /var/www/html;
}
location / {
proxy_pass http://localhost:3000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
server {
listen 443 ssl;
http2 on;
server_name サーバーのIPアドレス;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
return 301 https://example.com$request_uri;
} 設定変更後は、以下のコマンドを実行し、Nginx を再起動します。
sudo systemctl restart nginx /etc/nginx/sites-enabled/default(Nginxのデフォルト設定ファイル)にもlisten 80 default_server;があるとduplicate default serverのエラーの原因になります。