Technology
4 min
A reverse proxy is a special web server that accepts requests from various clients and forwards each request to the appropriate server to handle it. It returns the server's response to the originating client. It is usually positioned at the network’s edge to intercept client requests before they reach the origin server.
By Shashank Tripathi
13 Apr, 2020
Nginx, as we all know, is one of the most popular web servers in the world with a ton of cool features with its high performance and low memory footprint, as well as the ability to act as a reverse proxy which is beneficial if you have some javascript applications running on your server on different ports. But how do we set it up for this typical task? Well, not so typical after all as it's fairly simple to configure.
Just a running Linux server instance, the ability to run a few commands, and a javascript project running on some port number. We will use a t2micro ec2 instance with Ubuntu18 OS for our demonstration here. We have a nodeJs app running on port 3000.
Since it is readily available in ubuntu's default repository so just a few commands should do it.
$ sudo apt-get update
$ sudo apt-get
install nginx
For Nginx to run, it must be allowed by the system firewall. Nginx registers itself to the firewall, which makes the job a little bit easier. As we run the following command
$ sudo ufw app list
It will fetch you a list of the application profiles as below:
Available applications: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH
As you can see above, it shows three profiles:\r\r Nginx Full: Allows traffic to flow from port 80 (normal, unencrypted) and on port 443 (SSL encrypted)\ Nginx HTTP: Allows traffic to flow from port 80 (normal, unencrypted) only. Nginx HTTPS: Allows traffic to flow from port 443 (SSL encrypted) only. Choose your requirement, for now, we are going to allow all, so
$ sudo ufw allow 'Nginx Full'
and then just check it for confirmation by
$ sudo ufw status
It should give you something like the below
Status: active To | ||
---|---|---|
OpenSSH | ALLOW | Anywhere |
Nginx HTTP | ALLOW | Anywhere |
OpenSSH (v6) | ALLOW | Anywhere (v6) |
Nginx HTTP (v6) | ALLOW | Anywhere (v6) |
Now start the server and check its status before we move to the main task. `
$ sudo service nginx start
$ sudo service nginx status
It should show something like the following:
nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2022-08-29 06:52:46 UTC; 39min ago
Docs: man:nginx(8)
Main PID: 9919 (nginx)
Tasks: 2 (limit: 2327)
Memory: 2.9M
CPU: 50ms
CGroup: /system.slice/nginx.service
├─9919 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
└─9920 "nginx: worker process
With the server running, you can verify it by entering your public IP in the browser address bar, and the default nginx page should pop up!
Go down to nginx default site config file and open it to edit.\r\r
$ sudonano /etc/nginx/sites-available/default
You will see the default server block and can remove all that. We will write our own server block to configure our reverse proxy:
server
listen 80;
listen 443 ssl;
server_name localhost;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.pem;
location /
{
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
\rAnd voila!! Thats all you've got to do. Now all requests coming to the web server will be reverse proxied to the application running on port 3000. If you just refresh the tab with your public IP, you should find your node app instead of the default nginx welcome page.
Gen AI Security Explained: How to Safeguard Models, Data & Workflows
By Garima Saxena
7 min read
AI Security in Web Application Firewall: Smarter WAF with Machine Learning
By Garima Saxena
7 min read
AI in Mobile App Security: How AI Protects Mobile Apps
By Garima Saxena
5 min read
How AI Powers Data Governance: Privacy, Consent & Storage
By Sannidhya Sharma
5 min read
Technology
7 min
Generative AI is moving fast into enterprises, from banks to hospitals to government agencies. Adoption is rapid, but security planning lags. Unlike traditional systems, these models can be exploited through prompt injection, poisoned data, or manipulated to leak sensitive information. They are also misused for phishing, deepfakes, and malicious code.
Technology
7 min
AI-powered Web Application Firewalls (WAFs) go beyond static rules by using machine learning, anomaly detection, and predictive analysis to block zero-day threats, reduce false positives, and protect APIs at scale. Unlike traditional WAFs, they self-learn, adapt in real time, and cut operational costs while improving compliance and trust.
Technology
5 min
AI is redefining mobile app security by transforming how threats are detected, tested, and prevented. From continuous monitoring and fraud detection to compliance with regulations, AI ensures apps remain resilient against modern risks. This means safer apps, protected users, and stronger businesses. Investing in AI-driven security today builds trust, drives growth, and secures long-term competitive advantage.
Feeling lost!! Book a slot and get answers to all your industry-relevant doubts