Bobcares

Allow PM2 Through NGINX | All About

by | Sep 6, 2022

This tutorial describes how to build a Node.js application with Express, by allowing a PM2 process manager through Nginx reverse proxy. At Bobcares, with our Server Management Services, we can handle your NGINX issues.

Allow pm2 through NGINX

The main steps in the process involve Installing the dependencies, Project setup, Adding Demo Source Code, Testing the app, Daemonizing the App, and Nginx Reverse Proxy. Let’s explore each step in detail.

allow pm2 through nginx
Install the Dependencies

In order to install the dependencies, we have to follow the below steps:

  • SSH into the server.
  • Now update all the dependencies using the code: $ sudo apt update.
  • Then install Node.js using the command: $ sudo curl -sL https://deb.nodesource.com/setup_lts.x | sudo -E bash - $ sudo apt install -y nodejs nano nginx.
  • Verify Node.js was installed properly using the command $ node -v. This command returns the version number.
  • Finally, install pm2 with the command $ sudo npm i -g pm2.
Project Setup
  • Firstly, Initialize a new project using the below code:

    $ mkdir express-website $ cd express-website $ npm init -y

  • Then install Express.js using the command $ npm i express.
Add Demo Source Code
  • Firstly, make the project’s main file using the command $ nano index.js.
  • Then insert the following into the editor.
    const express = require("express"); // Acquire the express package and assign it to a variable called "express"
    const app = express(); // Calls the method "express()" and assigns it's output to "app". "express()" will create an express app for you.
    
    app.get("/", (req, res) => { // Creates sort of a listener for when there are "GET" requests to the "/" (root) path. Takes in req (request) and res (response)
        res.send("Hello world!"); // For the response, send a string "Hello World!"
    });
    
    app.listen(3000, () => { // Tells the app to start on port 3000. This function below is run when
        console.log("Server listening on port 3000!"); // Say in the console "Server listening on port 3000!"
    })

     

  • Finally, save it and exit.
Test the App
  • Test the app with the command: $ node index.js
  • “Server listening on port 3000!” will appear if everything is working fine.
  • Finally, exit from it.
Daemonize the App
  • Now daemonize the app with pm2 using code $ pm2 start index.js.
  • Run the pm2 list to verify it is daemonized.
Nginx Reverse Proxy
  • Firstly, create the server block in Nginx using the command $ nano /etc/nginx/sites-enabled/express.conf.
  • Then paste the following in the nano editor: server { listen 80; # Listen on port 80 listen [::]:80; # Listen on port 80 for ipv6 server_name _; location / { proxy_pass http://127.0.0.1:3000; } }.
  • Now save the file and exit.
  • Remove the default Nginx site using the command: $ sudo rm /etc/nginx/sites-enabled/default.
  • Now, use $ systemctl restart nginx to restart NGINX.
  • Also, open port 80 in the UFW firewall with $ sudo ufw allow 80/tcp.
  • Lastly, check if it works by using the server IP in the browser.

[Need further help? We assist you 24/7.]

Conclusion

To summarize, we have provided the basic steps from our Support team for the creation of a Node.js application using Express, its deployment using the pm2 process manager, and its publication using an Nginx reverse proxy.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

Never again lose customers to poor
server speed! Let us help you.

Privacy Preference Center

Necessary

Necessary cookies help make a website usable by enabling basic functions like page navigation and access to secure areas of the website. The website cannot function properly without these cookies.

PHPSESSID - Preserves user session state across page requests.

gdpr[consent_types] - Used to store user consents.

gdpr[allowed_cookies] - Used to store user allowed cookies.

PHPSESSID, gdpr[consent_types], gdpr[allowed_cookies]
PHPSESSID
WHMCSpKDlPzh2chML

Statistics

Statistic cookies help website owners to understand how visitors interact with websites by collecting and reporting information anonymously.

_ga - Preserves user session state across page requests.

_gat - Used by Google Analytics to throttle request rate

_gid - Registers a unique ID that is used to generate statistical data on how you use the website.

smartlookCookie - Used to collect user device and location information of the site visitors to improve the websites User Experience.

_ga, _gat, _gid
_ga, _gat, _gid
smartlookCookie
_clck, _clsk, CLID, ANONCHK, MR, MUID, SM

Marketing

Marketing cookies are used to track visitors across websites. The intention is to display ads that are relevant and engaging for the individual user and thereby more valuable for publishers and third party advertisers.

IDE - Used by Google DoubleClick to register and report the website user's actions after viewing or clicking one of the advertiser's ads with the purpose of measuring the efficacy of an ad and to present targeted ads to the user.

test_cookie - Used to check if the user's browser supports cookies.

1P_JAR - Google cookie. These cookies are used to collect website statistics and track conversion rates.

NID - Registers a unique ID that identifies a returning user's device. The ID is used for serving ads that are most relevant to the user.

DV - Google ad personalisation

_reb2bgeo - The visitor's geographical location

_reb2bloaded - Whether or not the script loaded for the visitor

_reb2bref - The referring URL for the visit

_reb2bsessionID - The visitor's RB2B session ID

_reb2buid - The visitor's RB2B user ID

IDE, test_cookie, 1P_JAR, NID, DV, NID
IDE, test_cookie
1P_JAR, NID, DV
NID
hblid
_reb2bgeo, _reb2bloaded, _reb2bref, _reb2bsessionID, _reb2buid

Security

These are essential site cookies, used by the google reCAPTCHA. These cookies use an unique identifier to verify if a visitor is human or a bot.

SID, APISID, HSID, NID, PREF
SID, APISID, HSID, NID, PREF