Configure nginx as a web server for node js application.
upstream my_http_servers {
least_conn;
server 127.0.0.1:3001; # httpServer1 listens to port 3001
server 127.0.0.1:3002; # httpServer2 listens to port 3002
server 127.0.0.1:3003; # httpServer2 listens to port 3003
server 127.0.0.1:3004; # httpServer2 listens to port 3004
}
server {
listen 81;
server_name localhost;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://my_http_servers;
proxy_redirect off;
}
}
Run your node application in different ports
pm2 start app.js --node-args="app.js 3001" --name firstInstance
pm2 start app.js --node-args="app.js 3002" --name secondInstance
pm2 start app.js --node-args="app.js 3003" --name thirdInstance
pm2 start app.js --node-args="app.js 3004" --name fourthInstance