Рубрики
Без рубрики

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

Экспресс-приложение с SSL менее чем за 10 минут!

Автор оригинала: Marcos Casagrande.

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

Node.js & Express.

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

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs

Создание приложения Basic Express

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

Мы можем проверить, что наше приложение работает для посещения http://yourdomain.com:3001 (У вас пока нет сертификата 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 http://localhost:3001; # 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 что Apache2 На Ubuntu, поэтому мы должны создать SymLink, выполняющую следующую команду:

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

После этого нам нужно бежать:

sudo service nginx restart # or reload

Проверить Nginx Установка Посещение: http://yourdomain.com.

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

Certbot:

Монтаж

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

Команда автоматически определяет домен/s, используемый в Server_name Директива Nginx Conf.

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

Перезапустить Nginx.

sudo service nginx restart

А теперь иди к: https://yourdomain.com.