Spuštění aplikace nodejs ve vývojovém nebo místním prostředí, kde je v OS poskytováno rozhraní GUI, je snadný úkol, ale pokud jde o nasazení v produkci na cloudovém serveru, většina začátečníků neví, jak začít. Zde je podrobný postup krok za krokem pro nastavení jednoduché aplikace nodejs.
1. Vytvoření nového uživatele sudo
POZNÁMKA:Pokud jste již vytvořili uživatele s oprávněními superuživatele, nemusíte tento krok provádět.
Ve skutečnosti můžete přímo pracovat s root
ale některé nebezpečné příkazy, které jste v terminálu zadali špatně, poškodí server. Takže raději použijte sudo
a pro jeho vytvoření se nejprve přihlaste pomocí root
uživatelská oprávnění:
$ ssh [email protected]_server_ip
A poté jej dokončete zadáním hesla a autenticity hostitele.
Nyní vytvořte nového uživatele pomocí sudo
přístup:
$ adduser sonu
$ usermod -aG sudo sonu
První příkaz vytvoří nového uživatele po položení několika otázek a druhý příkaz přidá tohoto uživatele do sudo
skupina (skupina superuživatelů).
Nyní se odhlaste ze serveru (použijte exit
příkaz) a přihlaste se pomocí tohoto nového uživatele.
$ ssh [email protected]_ip
2. Nainstalujte nginx a node.js
Nejprve aktualizujte apt
úložiště pomocí tohoto příkazu:
$ sudo apt update
Nyní nainstalujte nginx pomocí
$ sudo apt install nginx
A pak nodejs
s
$ curl -sL https://deb.nodesource.com/setup_6.x | bash
$ sudo apt install -y nodejs
Nejnovější verzi node.js najdete také v oficiálních [instalačních pokynech] (https://github.com/nodesource/distributions#installation-instructions).
3. Spuštění jednoduché aplikace nodejs (express)
Vytvoříme jednoduchou aplikaci expressjs pomocí express-generator
. Nejprve tedy nainstalujte express-generator
globálně pomocí následujícího:
$ sudo npm i express-generator -g
Poté vytvořte expresní aplikaci v domovském adresáři
$ cd ~
$ express testapp
Nyní spusťte aplikaci pomocí :
$ cd testapp
$ npm install & npm start
Vaše aplikace bude začínat na http://localhost:8080
port.
4. Nainstalujte pm2, aby byl spuštěn navždy
Jednoduše proveďte npm start
nerestartuje aplikaci, pokud se aplikace vypne v případě selhání serveru nebo tak něco. Abychom jej udrželi v chodu při každém restartu systému, používáme pm2
aplikace nodejs. Nainstalujte jej globálně zadáním sudo npm i pm2 -g
a spusťte aplikaci navždy pomocí následujícího příkazu.
$ cd testapp/bin
$ pm2 start www
5. Mapování 8080 na výchozí port http.
Nyní posledním krokem je použití nginx k mapování 8080
port na výchozí 80
http port. Říkáme tomu reverzní proxy server.
Otevřete výchozí blok serveru nginx a smažte vše z tohoto souboru.
$ sudo nano /etc/nginx/sites-available/default
Do tohoto souboru vložte následující kód a uložte jej:
server {
listen 80;
server_name "";
location / {
proxy_pass http://localhost:8080;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Nakonec otestujte konfiguraci a znovu načtěte nginx:
$ sudo nginx -t
$ sudo nginx -s reload
## or restart the nginx
$ sudo service nginx restart
Dalším krokem je deaktivace portu 8080
přes ubuntu ufw
firewall. Povolením zablokujete všechny porty. Povolte tedy některé běžné porty prostřednictvím Nginx Full
konfigurace.
$ sudo ufw enable
$ sudo ufw allow 'Nginx Full'