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.
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.
var google_conversion_label = "owonCMyG5nEQ0aD71QM";
0 Comments