Implementamos um projeto Node.js (Nuxt.js) baseado em VDS com Ubuntu Server OS

Bom dia, Khabrovites!





Neste artigo, considerarei a questão de implantar do zero um projeto Nuxt.js (ou qualquer outro projeto em Node.js) em um servidor VDS usando o servidor web Apahce2, Node.js, gerenciador de processos pm2 com um ciclo de instalação completo de todos os componentes.





A instalação será realizada em um servidor VDS limpo que não possui nenhuma configuração.





O conteúdo do artigo

Etapa 1. Conecte via SSH ao VDS

Para se conectar a um servidor VDS via SSH, você não precisa mais baixar e instalar nenhum programa adicional, uma vez que o cliente OpenSSH já está integrado ao Windows PowerShell nos sistemas operacionais Windows 10 mais recentes.





Vou usar o aplicativo Windows Terminal, que pode ser baixado da Microsoft Store (o desenvolvedor do Windows Terminal é a própria Microsoft).





Ubuntu Server 20.04





, :





ssh root@_IP_
      
      



root , .





IP- FQDN- , DNS A- IP- .





Comando para conectar ao servidor via SSH
SSH

() :





Terminal Ubuntu Server
Ubuntu Server

, .





2. Apache2 -

- Apache2 , Ubuntu - Apache2.





:





apt install software-properties-common
      
      



Comando de instalação de pacote necessário

, :





Apache2 :





apt-add-repository ppa:ondrej/apache2
      
      



, , Enter:





, - Apache2:





apt install apache2
      
      



- Apache2. - Enter.





!





IP-, FQDN- , - Apache2 .





. 80 443 . - !





  Apache2
Apache2

3. Node.js (nvm) Node.js

NodeJS NodeJS. nvm.





GitHub.





Installing and Updating . wget:





     NVM     GitHub
NVM GitHub

:





wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
      
      



  NVM
NVM

Enter





, init 6







. SSH , 1.





1.





nvm , . NodeJS LTS:





  NodeJS LTS-
NodeJS LTS-

NVM " 2 " Node.js





Enter:





nvm install --lts
      
      



  NodeJS   NVM
NodeJS NVM

Node.js :





node -v
      
      



Node.js:





  NodeJS
NodeJS

4. pm2

, , Node.js, , Node.js, npm. pm2:





npm install -g pm2
      
      



:





   pm2
pm2

pm2 -h







5. Node.js- ( - Nuxt.js-)

Nuxt.js . Node.js-, , , .





. Nuxt.js , . ,





Nuxt.js - :





  • - npm run dev







  • - npm run start







static, npm run generate



. , Node.js





, pm2





pm2:





pm2 init
      
      



pm2
pm2

ecosystem.config.js



nano :





nano ecosystem.config.js
      
      



  ecosystem.config.js
ecosystem.config.js

Ctrl+O, Enter:





module.exports = {
  apps : [
    {
      name: "nuxt-dev",
      script: "npm",
      args: "run dev"
    },
    {
      name: "nuxt-prod",
      script: "npm",
      args: "run start"
    }
  ]
}
      
      



dev- :





pm2 start ecosystem.config.js --only nuxt-dev
      
      



prod-:





npm run build && pm2 start ecosystem.config.js --only nuxt-prod
      
      



, , Dev-:





 dev- NuxtJS-  pm2
dev- NuxtJS- pm2

/ . pm2:





pm2 start nuxt-dev
      
      



,





pm2 stop nuxt-dev 
      
      



.





NodeJS- pm2 :





pm2 status
      
      



- pm2
- pm2

:





pm2 monit
      
      



 pm2
pm2

pm2 :





pm2 startup
      
      



:





pm2 save
      
      



[] pm2

- pm2 pm2.io Bucket.





, Bucket ( . pm2).





-:





pm2 plus
      
      



pm2 , pm2.io ( y



Enter





   pm2.io?
pm2.io?

email .





, pm2 , Bucket - . TestBucket





 Bucket     - pm2
Bucket - pm2

Bucket - pm2 (). , :





- pm2
- pm2

pm2 :





pm2 unstartup
pm2 startup
pm2 save
      
      



  pm2
pm2

6. Node.js- Apache2 Proxy

Nuxt.js 3000 (-)





80 ( HTTP).





Apache2 Proxy:





a2enmod proxy_http
      
      



- :





systemctl restart apache2
      
      



  Apache2 Proxy HTTP
Apache2 Proxy HTTP

Apache2 :





cd /etc/apache2/sites-available
      
      



Apache2:





cp 000-default.conf _.conf
      
      



_.conf nano. :





  • ServerName: example.com





  • ServerAdmin: webmaster@localhost email





  • DocumentRoot: #





Um exemplo de arquivo de configuração de host virtual

, , :





ProxyPreserveHost On

ProxyPass / http://127.0.0.1:3000/
ProxyPassReverse / http://127.0.0.1:3000/
      
      



:3000 -





Ctrl+O Enter. Ctrl+Z





Proxy da porta 3000
3000

-*:





a2ensite _
systemctl reload apache2
      
      



* a2ensite _









- - Apache2





7. pm2

, pm2 .





init 6



, .





- Node.js VDS-.





- Apache2, Node.js - NVM Node.js , Node.js- Vue.js- - Nuxt.js, pm2 .





, .





, ( ?) Docker NGINX. .





, - .





!








All Articles