Instalacja oraz uruchomienie Node.js na koncie hostingowym Smarthost.pl

Jak zainstalować i używać Node.js na serwerze Smarthost   Aby móc korzystać z Node.js wymagany jest dostęp SSH. Dostęp można włączyć poprzez Panel Abonenta https://www.smarthost.pl/panel/login dla wszystkich oferowanych pakietów hostingowych. Należy kliknąć ikonę koła zębatego przy usłudze, a następnie przycisk Włącz SSH. Pakiet nie może być w wersji testowej (musi być opłacony).  

Instalacja Nodejs

1. Łączymy się z SSH używając portu podanego w panelu abonenta. Możemy w tym celu użyć programu Putty.

2. Wpisujemy

cd

i wciskamy enter

3. Wybieramy interesującą nas wersję nodejs z repozytorium https://nodejs.org/dist .
Na potrzeby tego poradnika użyta zostanie wersja nodejs v21.

4.Pobieramy wybraną wersję nodejs poprzez terminal przy użyciu komendy:

wget https://nodejs.org/dist/latest-v21.x/node-v21.1.0-linux-x64.tar.xz

5. Następnie pobraną paczkę należy rozpakować:

tar -xJf node-v21.1.0-linux-x64.tar.xz

6. Możemy zmienić nazwę wypakowanego katalogu na bardziej przyjazną poleceniem:

mv node-v21.1.0-linux-x64 nodejs

7. Tworzymy katalog bin we własnym katalogu domowym

mkdir bin

8. Kopiujemy tam aplikację Node:

cp ./nodejs/bin/node ./bin

9. Wchodzimy do katalogu bin:

cd ./bin

10. Tworzymy dowiązanie symboliczne:

ln -s ../nodejs/lib/node_modules/npm/bin/npm-cli.js npm

11. Node i npm są zainstalowane, możemy wpisać:

node –version

Powinno ukazać się:

v21.1.0

Natomiast dla polecenia:

npm –version

Ukazuje się:

10.2.0

Polecenia node i npm będą działały z każdego katalogu, dzięki umieszczeniu w katalogu bin.

Uruchamianie aplikacji

Na początek należy umieścić aplikację nodejs w dowolnym katalogu na hostingu.

Następnie przechodzimy do katalogu, w którym umieściliśmy aplikację i wpisujemy:

nohup node aplikacja.js &

Dzięki & aplikacja będzie uruchomiona w tle, natomiast nohup sprawi, że aplikacja będzie działała po wylogowaniu.  

Alternatywnie:

  1. Wpisujemy polecenie screen i zatwierdzamy enterem
  2. Uruchamiamy naszą aplikację np. node aplikacja.js
  3. Wciskamy ctrl a
  4. Następnie wciskamy d
  5. Nasz screen przejdzie do pracy w tle
  6. Będzie można do niego wrócić poprzez polecenie screen -x

Wyłączanie aplikacji

Wpisujemy:

pkill node

i wciskamy enter.

Alternatywnie:

  1. Wracamy do screen poprzez screen -x
  2. Zamykamy naszą aplikację poleceniem process.exit()
  3. Możemy zamknąć screen poleceniem exit

Przekierowanie aplikacji Node.js na wybraną domenę

Umieszczamy następujące reguły w pliku .htaccess (plik ten tworzymy w katalogu domeny np. public_html/domena-klienta.pl):

DirectoryIndex disabled
RewriteEngine On
RewriteRule ^$ http://127.0.0.1:PORT/ [P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://127.0.0.1:PORT/$1 [P,L]

Zamiast PORT wpisujemy liczbę z zakresu 49152 do 65534. Jeżeli port jest zajęty przez innego Klienta, wybieramy kolejny dopóki aplikacja nie będzie na nim działać. Należy również pamiętać, aby taki sam port ustawić w aplikacji Node.js.

Wystarczy teraz wejść na naszą domenę, a ukaże nam się strona serwowana przez Node.js.

Przekierowanie na bezpieczne połączenie https z SSL cPanel

Możemy też przekierować ruch z serwerem na bezpieczne połączenie https. Uwaga! Serwer Node.js uruchamiamy jako http, a nie https. Połączenie https zapewnia nasz serwer Apache. Certyfikat cPanel generuje się automatycznie po dodaniu domeny poprzez Domeny dodatkowe w cPanelu, nie musisz więc martwić się instalacją i konfiguracją certyfikatu SSL.

Użyj następującej zawartości pliku .htaccess aby wymusić przekierowanie (zmieniając PORT na liczbę z zakresu podanego powyżej):

DirectoryIndex disabled
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule ^$ http://127.0.0.1:PORT/ [P,L]
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://127.0.0.1:PORT/$1 [P,L]
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Obsługa WebSockets

Aby protokół ws:// działał prawidłowo, należy utworzyć reguły w .htaccess, przykładowo dla biblioteki socket.io należy dodać poniższe linijki pod linijką „RewriteEngine On” (zmieniając PORT na wybraną wcześniej liczbę i nie usuwając już istniejących zapisów w pliku htaccess):

RewriteCond %{REQUEST_URI} ^/socket.io [NC]
RewriteCond %{QUERY_STRING} transport=websocket [NC]
RewriteRule /(.*) ws://localhost:PORT/$1 [P,L]

Uruchomienie Node.js z cPanel

Zalecamy uruchamiać aplikacje Node.js z poziomu cPanel. Więcej informacji na ten temat znajduje się w naszym wpisie na blogu: https://www.smarthost.pl/blog/uruchomienie-node-js-w-cpanel

Załóż bezpłatne konto testowe na serwerze Smarthost.pl i sprawdź jak działa Node.js.

Załóż testowe konto hostingowe z obsługą Node.js

Dodaj komentarz