¡Buen día, Khabrovites!
En este artículo, consideraré la cuestión de implementar desde cero un proyecto Nuxt.js (o cualquier otro proyecto en Node.js) en un servidor VDS utilizando el servidor web Apahce2, Node.js, administrador de procesos pm2 con un ciclo de instalación completo. de todos los componentes.
La instalación se realizará en un servidor VDS limpio que no tiene ninguna configuración.
El contenido del artículo
Paso 1. Conéctese a través de SSH a VDS
Paso 2. Agregar el repositorio Apache2 al servidor e instalar el servidor web
Paso 3. Instalar el administrador de versiones de Node.js (nvm) y el propio Node.js
Paso 4. Instalar el administrador de procesos pm2
Paso 5. Lanzar una aplicación Node.js (en nuestro caso, una aplicación Nuxt.js)
Paso 6. Proxy de una aplicación Node.js a través de Apache2 Proxy
-
-
Paso 1. Conéctese a través de SSH a VDS
Para conectarse a un servidor VDS a través de SSH, ya no necesita descargar e instalar ningún programa adicional, ya que el cliente OpenSSH ya está integrado en Windows PowerShell en los últimos sistemas operativos Windows 10.
Usaré la aplicación Windows Terminal, que se puede descargar de Microsoft Store (el desarrollador de Windows Terminal es 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. .
, - .
!