Установка приложения Express/Nginx с SSL с помощью Certbot в Ubuntu 18.04

Это краткое руководство о том, как настроить NGINX в качестве обратного прокси-сервера перед приложением Express.js и как получить бесплатный SSL-сертификат с помощью Certbot менее чем за 10 минут!

Node.js и экспресс

Установка Node.js 10.x

curl -sL  | sudo -E bash -
sudo apt-get install -y nodejs

Создание базового экспресс-приложения

mkdir my-app
cd my-app
npm init # Fill the form
npm install express

Создать index.js файл и вставьте следующее:

nano index.js
'use strict';

const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('Express/Nginx/Certbot tutorial');
});

app.listen(3001);

Установить PM2

PM2 — это диспетчер процессов Node.js, который запускает наше приложение в фоновом режиме и перезапускает его при загрузке или сбое.

sudo npm install -g pm2
sudo pm2 startup
sudo pm2 start index.js
sudo pm2 save

Мы можем проверить, что наше приложение работает, посетив (У вас еще нет SSL-сертификата, поэтому https не будет работать)

Установка и настройка Nginx

sudo apt install nginx

Теперь нам нужно создать конфигурацию сервера

sudo nano /etc/nginx/sites-available/yourdomain.com.conf

И скопируйте следующее:

server {
  listen 80;
    
  server_name yourdomain.com www.yourdomain.com;
    
  location / {
    proxy_pass  # Change the port if needed
    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;
  }
}

Nginx не хватает команды a2ensite что апач2 имеет на Ubuntu, поэтому мы должны создать символическую ссылку, выполнив следующую команду:

sudo ln -s /etc/nginx/sites-available/yourdomain.com.conf /etc/nginx/sites-enabled/

После этого нам нужно запустить:

sudo service nginx restart 

Проверить Nginx выезд на установку:

Вам нужно будет увидеть, как обслуживается приложение Express.

Сертбот:

Монтаж

sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt install python-certbot-nginx 

Получение сертификата:

sudo certbot --nginx

Команда автоматически обнаружит домен/ы, используемые в server_name директива nginx conf.

После выполнения у вас будет сертификат, и конфигурация Nginx будет автоматически изменена для его использования.

Запустить снова Nginx

sudo service nginx restart

А теперь перейдите к:

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *