Автор оригинала: 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.