Guten Tag, Chabrowiten!
In diesem Artikel werde ich das Problem der Bereitstellung eines Nuxt.js-Projekts (oder eines anderen Projekts auf Node.js) auf einem VDS-Server unter Verwendung des Apahce2-Webservers Node.js, pm2-Prozessmanagers mit einem vollständigen Installationszyklus von Grund auf behandeln aller Komponenten.
Die Installation wird auf einem sauberen VDS-Server durchgeführt, der keine Einstellungen hat.
Der Inhalt des Artikels
Schritt 1. Stellen Sie über SSH eine Verbindung zu VDS her
Schritt 2. Hinzufügen des Apache2-Repositorys zum Server und Installieren des Webservers
Schritt 3. Installieren des Node.js-Versionsmanagers (nvm) und von Node.js selbst
Schritt 4. Installieren des pm2-Prozessmanagers
Schritt 5. Starten einer Node.js-Anwendung (in unserem Fall einer Nuxt.js-Anwendung)
Schritt 6. Proxying einer Node.js-Anwendung über Apache2 Proxy
-
-
Schritt 1. Stellen Sie über SSH eine Verbindung zu VDS her
Um über SSH eine Verbindung zu einem VDS-Server herzustellen, müssen Sie keine zusätzlichen Programme mehr herunterladen und installieren, da der OpenSSH-Client unter den neuesten Windows 10-Betriebssystemen bereits in Windows PowerShell integriert ist.
Ich werde die Windows Terminal-Anwendung verwenden, die aus dem Microsoft Store heruntergeladen werden kann (der Entwickler von Windows Terminal ist Microsoft selbst).
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. .
, - .
!