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
Etapa 2. Adicionando o repositório Apache2 ao servidor e instalando o servidor web
Etapa 3. Instalando o gerenciador de versão Node.js (nvm) e o próprio Node.js.
Etapa 4. Instalando o gerenciador de processo pm2
Etapa 5. Lançamento de um aplicativo Node.js (em nosso caso, um aplicativo Nuxt.js)
Etapa 6. Proxy de um aplicativo Node.js via Apache2 Proxy
-
-
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- .
() :
, .
2. Apache2 -
- Apache2 , Ubuntu - Apache2.
:
apt install software-properties-common
, :
Apache2 :
apt-add-repository ppa:ondrej/apache2
, , Enter:
, - Apache2:
apt install apache2
- Apache2. - Enter.
!
IP-, FQDN- , - Apache2 .
. 80 443 . - !
3. Node.js (nvm) Node.js
NodeJS NodeJS. nvm.
Installing and Updating . wget:
:
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
Enter
, init 6
. SSH , 1.
1.
nvm , . NodeJS LTS:
NVM " 2 " Node.js
Enter:
nvm install --lts
Node.js :
node -v
Node.js:
4. pm2
, , Node.js, , Node.js, npm. pm2:
npm install -g 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
ecosystem.config.js
nano :
nano 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-:
/ . pm2:
pm2 start nuxt-dev
,
pm2 stop nuxt-dev
.
NodeJS- pm2 :
pm2 status
:
pm2 monit
pm2 :
pm2 startup
:
pm2 save
[] pm2
- pm2 pm2.io Bucket.
, Bucket ( . pm2).
-:
pm2 plus
pm2 , pm2.io ( y
Enter
email .
, pm2 , Bucket - . TestBucket
Bucket - pm2 (). , :
pm2 :
pm2 unstartup pm2 startup pm2 save
6. Node.js- Apache2 Proxy
Nuxt.js 3000 (-)
80 ( HTTP).
Apache2 Proxy:
a2enmod proxy_http
- :
systemctl restart apache2
Apache2 :
cd /etc/apache2/sites-available
Apache2:
cp 000-default.conf _.conf
_.conf nano. :
ServerName: example.com
ServerAdmin: webmaster@localhost email
DocumentRoot: #
, , :
ProxyPreserveHost On ProxyPass / http://127.0.0.1:3000/ ProxyPassReverse / http://127.0.0.1:3000/
:3000 -
Ctrl+O Enter. Ctrl+Z
-*:
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. .
, - .
!