GNU/Linux >> Znalost Linux >  >> Linux

Jak nainstalovat MERN Stack s Nginx na Debian 11

Jak nainstalovat MERN stack s Nginx na Debian 11. MERN stack je nastavení s MongoDB, Express, React a Node.js. Jedná se o jednu z variant MEAN stacku. MongoDB je databáze, Express s Node.js se používá pro backend, který komunikuje s databází, React je strana klienta nebo frontend. Použijeme reverzní proxy Nginx na server Node.js a nastavíme Let’sEncrypt SSL.

V této příručce se naučíte, jak nastavit MERN stack na vašem serveru Debian 11.

Toto nastavení je testováno na Google Cloud, takže by mělo fungovat dobře na jiných VPS, cloudových serverech se systémem Debian 11.

Předpoklady

  • Server Debian 11 s přístupem sudo.
  • Název domény odkazující na váš server.

Obsah

  1. Nainstalujte MongoDB.
  2. Nakonfigurujte MongoDB.
  3. Nainstalujte Node.js s NVM.
  4. Nainstalujte React.js.
  5. Nainstalujte Express.js.
  6. Nastavte PM2 pro spouštění Node.js v backendu.
  7. Nainstalujte Nginx a nakonfigurujte jej.
  8. Nainstalujte Let’sEncrypt SSL.

Počáteční nastavení serveru

Začněte aktualizací serverových balíčků na nejnovější dostupné.

sudo apt update
sudo apt dist-upgrade -y

Nyní můžete přistoupit k nastavení zásobníku MERN.

Instalovat MongoDB

Zde nainstalujeme MongoDB Community Edition s LTS pomocí apt balíček spravovaný. Aktuální nejnovější verze MongoDB v době tohoto článku je 5.0.5.

Možná budete muset nainstalovat gnupg pro import klíče.

 sudo apt install gnupg

Importujte veřejný klíč pomocí následujícího příkazu.

wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -

Přidejte úložiště MongoDB do seznamu zdrojů. Použijeme repo bustera, protože v době psaní tohoto článku nemá MongoDB Community Edition samostatný repozitář pro Debian Bullseye.

Úložiště Buster je v aktivním vývoji a je kompatibilní s Bullseye.

echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/5.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list

Aktualizujte balíčky a nainstalujte MongoDB.

sudo apt update
sudo apt install -y mongodb-org

Po dokončení instalace povolte spuštění MongoDB při spuštění systému.

sudo systemctl enable mongod

Spusťte server MongoDB.

sudo service mongod start

Stav můžete zobrazit pomocí následujícího příkazu.

sudo service mongod status

Output
● mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-02-18 09:11:56 UTC; 3m ago
       Docs: https://docs.mongodb.org/manual
   Main PID: 1942 (mongod)
     Memory: 164.5M
     CGroup: /system.slice/mongod.service
             └─1942 /usr/bin/mongod --config /etc/mongod.conf

Feb 18 09:11:56 staging systemd[1]: Started MongoDB Database Server.

Konfigurace MongoDB

Nyní můžeme zabezpečit MongoDB, nakonfigurovat MongoDB pro přijímání vzdálených připojení a také vytvořit novou databázi.

Secure MongoDB

Upravte konfigurační soubor MongoDB.

sudo nano /etc/mongod.conf

Přejděte dolů do sekce zabezpečení #security a odkomentujte jej a povolte autorizaci. Konečná úprava by měla vypadat následovně.

security:
  authorization: enabled

Povolit vzdálená připojení

Chcete-li povolit vzdálená připojení, musíte upravit stejný soubor a přidat svou interní nebo soukromou IP do síťových rozhraní. Vaše konfigurace by měla vypadat jako ta níže.

net:
  port: 27017
  bindIp: 127.0.0.1,10.128.10.1

Nahraďte 10.128.10.1 svou IP adresou.

Otevřete firewall, pokud existuje pro port 27017.

Restartujte MongoDB.

sudo systemctl restart mongod

Pomocí následujícího příkazu ověřte, zda MongoDB povoluje vzdálená připojení.

sudo lsof -i | grep mongo

Měli byste obdržet výstup podobný tomu níže.

mongod 1942 mongodb 11u IPv4 31550 0t0 TCP instance_name.c.project_id.internal:27017 (LISTEN)
mongod 1942 mongodb 12u IPv4 31551 0t0 TCP localhost:27017 (LISTEN)

Vytvořit uživatele MongoDB Admin

Připojte se k prostředí MongoDB pomocí mongosh příkaz.

mongosh

Změňte na databázi správce.

use admin

Vytvořte administrátora se všemi oprávněními a heslem pro nastavení.

db.createUser({user: "admin" , pwd: passwordPrompt() , roles: [{ role: "userAdminAnyDatabase" , db: "admin"}]})

Po zobrazení výzvy zadejte heslo.

Zadejte exit pro opuštění shellu.

Nyní můžete pro připojení k MongoDB použít následující připojovací řetězec.

mongodb://admin:password@External-IP:27017/database

Instalovat Node.js s NVM

K instalaci Node.js použijeme Node Version Manager (NVM). Díky tomu můžete snadno přecházet mezi různými verzemi Node.js.

Stáhněte a spusťte instalační skript NVM pomocí wget .

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

Nyní načtěte příkaz nvm do aktuální relace shellu.

source ~/.bashrc

Chcete-li zobrazit seznam všech dostupných verzí Node.js, můžete použít následující příkaz.

nvm ls-remote

Nainstalujte potřebnou verzi Node.js s níže uvedenou syntaxí.

nvm install v16.13.2

Po instalaci můžete zkontrolovat verze Node.js a NPM.

node -v
v16.13.2

npm -v
6.14.13

Instalovat React.js

Nainstalujte a sestavte frontend React.js pomocí npx příkaz.

Přejděte do složky, do které chcete nainstalovat aplikaci React, a spusťte následující příkaz.

npx create-react-app frontend

Instalace všech balíčků React bude nějakou dobu trvat. Po dokončení instalace se zobrazí frontend složka vytvořená se všemi základními skripty React.

Přejděte do adresáře frontend a spusťte sestavení pomocí npm .

cd frontend
npm run build

Tím vytvoříte statický výstup se soubory HTML, CSS a JS pro váš frontend.

Svůj webový server Nginx můžete nasměrovat do tohoto adresáře sestavení, aby mohl sloužit vašemu frontendu.

Instalovat Express.js

Nainstalujte expresní generování pomocí npx příkaz.

npx express-generator

Po dokončení instalace vytvořte backendovou aplikaci pomocí express příkaz.

cd ~/
express backend

Nyní by měl být váš Express vytvořen. Můžete nainstalovat všechny moduly uzlů a spustit Express server pomocí PM2 na pozadí, jak je uvedeno v části níže.

cd backend
npm install

Staňte se Full-Stack Web Developerem se specializací React . Dokončete kurz vývoje webu

Nastavení PM2 pro spouštění Node.js na pozadí

PM2 je Node Process Manager, který je velmi užitečný pro spouštění serverů Node na pozadí.

Přejděte do své aplikace Express a spusťte následující příkaz.

cd ~/backend
pm2 start npm --name "backend" -- start

Nyní je váš Express server spuštěn na pozadí a naslouchá na portu 3000.

Nakonfigurujte PM2 tak, aby spouštěla ​​aplikaci Express při spuštění.

pm2 startup

Budete mít k dispozici dlouhý příkaz k provedení. Po provedení příkazu můžete uložit nastavení.

pm2 save

Dále můžete nakonfigurovat reverzní proxy Nginx přes tento port na subdoméně nebo podsložce podle vašeho přání.

Nainstalujte Nginx a nakonfigurujte jej

Nginx je jedním z nejlepších webových serverů pro práci s aplikacemi založenými na Node.js.

Nainstalujte Nginx.

sudo apt install nginx

Odebrat výchozí konfigurace

sudo rm /etc/nginx/sites-available/default
sudo rm /etc/nginx/sites-enabled/default

Vytvořte novou konfiguraci Nginx

sudo nano /etc/nginx/sites-available/application.conf

Vložte následující. V této konfiguraci ukazujeme cestu hlavní domény na výstupní adresář sestavení aplikace React.js a /api cestu pro aplikaci Express.js.

server {
     listen [::]:80;
     listen 80;

     server_name domainname.com www.domainname.com;

     root /home/cloudbooklet/backend/build/;
     index index.html;

     location / {
         try_files $uri $uri/ =404;
     }

     location /api/ {
         proxy_pass http://127.0.0.1:3001;
         proxy_http_version 1.1;
         proxy_set_header Connection '';
         proxy_set_header Host $host;
         proxy_set_header X-Forwarded-Proto $scheme;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $remote_addr;
    }
}

Uložte a ukončete soubor.

Povolte konfiguraci vytvořením symbolického odkazu.

sudo ln -s /etc/nginx/sites-available/application.conf /etc/nginx/sites-enabled/application.conf

Zkontrolujte konfiguraci Nginx a restartujte Nginx

sudo nginx -t
sudo service nginx restart

Instalovat Let’sEncrypt SSL

Můžeme použít Certbot k instalaci bezplatného certifikátu Let’s Encrypt SSL pro vaši doménu.

sudo apt install python3-certbot-nginx

Provedením následujícího příkazu nainstalujte certifikát a automaticky nakonfigurujte přesměrování na HTTPS.

sudo certbot --nginx --redirect --agree-tos --no-eff-email -m [email protected] -d domain.com -d www.domain.com

Nyní byste měli obdržet certifikát SSL a bude automaticky nakonfigurován.

Nastavte automatické obnovení.

sudo certbot renew --dry-run

Nyní můžete ve svém prohlížeči vyhledat svou doménu a zobrazit výstup.

Závěr

Nyní jste se naučili, jak nainstalovat a nastavit MERN stack na Debianu 11.

Díky za váš čas. Pokud narazíte na jakýkoli problém nebo zpětnou vazbu, zanechte prosím komentář níže.


Linux
  1. Jak nainstalovat Nginx na Debian 8 (Jessie)

  2. Jak nainstalovat MongoDB na Debian 11

  3. Jak nainstalovat MERN Stack s Nginx na Debian 11

  1. Jak nainstalovat MongoDB 4.4 / 4.2 na Debian 9

  2. Jak nainstalovat a nastavit MERN Stack s Nginx na Ubuntu 20.04

  3. Jak nainstalovat LEMP Stack na Debian 10 Buster

  1. Jak nainstalovat MongoDB na Debian 9

  2. Jak nainstalovat Nginx na Debian 9

  3. Jak nainstalovat InvoicePlane s Nginx na Debian 9