NGINX as a Reverse Proxy

Sadil Chamishka
2 min readDec 4, 2019


Nginx is a web server and also can be used as a reverse proxy.

apt install nginx

First, we can disable the default virtual host that is pre-configured when Nginx is installed.

unlink /etc/nginx/sites-enabled/default

We can edit nginx.conf file in order to configure the NGINX server to act as a reverse proxy.

we can set worker_processes count based on the number of cores allocating for worker processers. Also, set worker_connections as the number of connections concurrently handled by one processor.

helloworld is a service behind the NGINX proxy with endpoint port 80. Load balancing will happen over the 2 hosts mentions there.

upstream helloworld {
server {
listen 80;
listen [::]:80
access_log /var/log/nginx/reverse-access.log;
error_log /var/log/nginx/reverse-error.log;
location / {
proxy_pass http://helloworld;

We can also configure the way of load balancing as follows.

  • round-robin — requests to the application servers are distributed in a round-robin fashion,
  • least-connected — next request is assigned to the server with the least number of active connections,
  • ip-hash — a hash-function is used to determine what server should be selected for the next request (based on the client’s IP address). Therefor one client will direct to the same server.



Sadil Chamishka

Software Engineer @ WSO2 IAM TEAM

Recommended from Medium