Обновим систему
sudo apt-get update
sudo apt-get upgrade
Установим необходимые пакеты
sudo apt-get install build-essential libssl-dev
Создаем нового пользователя
sudo adduser ubuntu
Придумываем пароль пользователю. И остальные параметры при желании.
Добавляем нового пользователя в группу sudo:
sudo gpasswd -a ubuntu sudo
Настройка SSH demona
Открываем конфигурационный файл, например редактором nano:
sudo nano /etc/ssh/sshd_config
Находим там строку:
PermitRootLogin
Устанавливаем:
PermitRootLogin no
И снимаем комментарий, если закомментирована.
Сохраняем и перезапускаем ssh сервер:
service ssh restart
Заходим под новым пользователем, например так:
su ubuntu
Установка curl
sudo apt install curl
Установка Node.js
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs
Проверяем версию Node.js
node -v
Проверяем версию npm
npm -v
Заливаем файлики
Заливаем файлики на сервер, я лью при помощи WinSCP. Переходим в нужную папку, при помощи команд
cd
Устанавливаем требуемые пакеты
npm i
Запускаем
node index.js
Проверяем и останавливаем Ctrl+C
Устанавливаем pm2 для демонизации
sudo npm install pm2 -g
Запустим при помощи pm2
pm2 start index.js
Добавляем автозапуск, для pm2
pm2 startup ubuntu
Выполняем нижнюю сформированную команду, которая появилась на экране, например:
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup ubuntu -u ubuntu - -hp /home/ubuntu
Сохраним изменения
pm2 save
Для проверки запущенных приложений:
pm2 list
Для мониторинга:
pm2 monit
Теперь можно перезапустить и убедится что все работает.
Устанавливаем и настраиваем веб-сервер nginx
sudo apt-get install nginx
Редактируем конфигурационный файл:
sudo nano /etc/nginx/sites-available/default
В настройках, можно все удалить и прописать:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1: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;
}
}
Сохраняем и перезапускаем nginx:
sudo service nginx restart
Теперь можно проверить по ip адресу, должно работать.
Проверка конфигов nginx
nginx -t
Для разворачивания нескольких приложений и прокидывания статики средствами nginx, можно прописать так:
server {
listen 80;
server_name example1.ru;
location / {
proxy_pass http://127.0.0.1:8080;
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;
}
location /assets/ {
root /path/to/project0/static;
}
}
server {
listen 80;
server_name example2.ru;
location / {
proxy_pass http://127.0.0.1:8081;
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;
}
location /assets/ {
root /path/to/project1/static;
}
}
Далее пробрасываем порты на роутере.
Настраиваем домен.