NGINX Reverse and Forward Proxies

NGINX Layer 4 Proxy

NGINX is a popular open-source web server and reverse proxy that is known for its high performance and flexibility. It is often used as a load balancer or as a reverse proxy to distribute incoming traffic across multiple servers or to cache static content. In this article, we will explain the basics of NGINX as a layer 4 (L4) reverse proxy and forward proxy.

What is a Reverse Proxy?

A reverse proxy is a type of server that sits in front of one or more backend servers and acts as a intermediary for incoming requests. It receives requests from clients and forwards them to the appropriate backend server, and then returns the response from the backend server back to the client.

The main advantage of using a reverse proxy is that it can provide additional security and performance benefits. For example, a reverse proxy can hide the IP addresses of the backend servers from clients, and it can also perform tasks such as SSL termination, compression, and caching to offload workload from the backend servers.

What is a Forward Proxy?

A forward proxy is similar to a reverse proxy, but it sits in front of client computers and acts as a intermediary for outgoing requests. It receives requests from clients and forwards them to the appropriate server, and then returns the response back to the client.

Forward proxies are often used to control access to the Internet, or to provide additional security and privacy for clients. For example, a forward proxy can be used to prevent clients from accessing certain websites, or to encrypt the traffic between clients and servers to protect against eavesdropping.

NGINX as a Reverse Proxy

NGINX can be used as a reverse proxy to distribute incoming traffic across multiple servers or to cache static content. To configure NGINX as a reverse proxy, you need to specify the backend servers in the upstream block, and then use the proxy_pass directive to forward the incoming requests to the backend servers.

Here is an example configuration for NGINX as a reverse proxy:

upstream backend {
  server backend1.example.com;
  server backend2.example.com;
}

server {
  listen 80;
  location / {
    proxy_pass http://backend;
  }
}

In this example, NGINX will listen for incoming requests on port 80 and forward them to the backend servers specified in the upstream block.

NGINX as a Forward Proxy

NGINX can also be used as a forward proxy to control access to the Internet or to provide additional security and privacy for clients. To configure NGINX as a forward proxy, you need to use the proxy_pass directive to forward the outgoing requests to the destination servers.

Here is an example configuration for NGINX as a forward proxy:

server {
  listen 8080;
  location / {
    proxy_pass http://destination.example.com;
  }
}

In this example, NGINX will listen for incoming requests on port 8080 and forward them to the destination server specified in the proxy_pass directive.


In addition to acting as a Layer 4 (L4) reverse proxy and forward proxy, NGINX can also be used as a layer 7 (L7) reverse proxy and forward proxy.

What is a Layer 7 Reverse Proxy?

A layer 7 reverse proxy is a type of reverse proxy that operates at the application layer (layer 7) of the OSI model. This means that it can examine and manipulate the content of the incoming requests and responses, based on the protocols and application-specific rules.

Layer 7 reverse proxies are often used to provide additional security and performance benefits for web applications. For example, a layer 7 reverse proxy can perform tasks such as authentication, rate limiting, and caching based on the content of the incoming requests.

NGINX as a Layer 7 Reverse Proxy

To configure NGINX as a layer 7 reverse proxy, you need to use the proxy_pass directive to forward the incoming requests to the backend servers, and use various other directives to manipulate the content of the requests and responses.

Here is an example configuration for NGINX as a layer 7 reverse proxy:

upstream backend {
  server backend1.example.com;
  server backend2.example.com;
}

server {
  listen 80;
  location / {
    proxy_pass http://backend;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }
}

In this example, NGINX will listen for incoming requests on port 80 and forward them to the backend servers specified in the upstream block. The proxy_set_header directives are used to manipulate the headers of the incoming requests and pass them to the backend servers.

What is a Layer 7 Forward Proxy?

A layer 7 forward proxy is similar to a layer 7 reverse proxy, but it sits in front of client computers and acts as a intermediary for outgoing requests. It can examine and manipulate the content of the outgoing requests and responses based on the protocols and application-specific rules.

Layer 7 forward proxies are often used to control access to the Internet or to provide additional security and privacy for clients. For example, a layer 7 forward proxy can be used to block access to certain websites, or to encrypt the traffic between clients and servers to protect against eavesdropping.

NGINX as a Layer 7 Forward Proxy

To configure NGINX as a layer 7 forward proxy, you need to use the proxy_pass directive to forward the outgoing requests to the destination servers, and use various other directives to manipulate the content of the requests and responses.

Here is an example configuration for NGINX as a layer7 forward proxy:

server {
  listen 8080;
  location / {
    proxy_pass http://destination.example.com;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }
}

In this example, NGINX will listen for incoming requests on port 8080 and forward them to the destination server specified in the proxy_pass directive. The proxy_set_header directives are used to manipulate the headers of the outgoing requests and pass them to the destination server.

Conclusion

In this article, we explained the basics of NGINX as a reverse proxy and forward proxy. NGINX is a powerful and flexible tool that can be used to examine and manipulate the content of incoming and outgoing requests and responses based on the protocols and application-specific rules. With its high performance and rich feature set, NGINX is a popular choice for web servers and reverse proxies.

The Moment Visit Hongkong in the Middle of Lock Down

Family Time @Hongkong Riverside

31 Desember 2019 Negara Tiongkok memperingatkan beberapa gejala terkait adanya virus tertentu, yang sekarang ini disebut sebagai virus korona. Beberapa hari kemudian banyak negara yang memberikan travel warning dan ada juga memberlakukan travel bann bagi pengunjung yang akan berwisata dan meninggalkan Tiongkok sekitarnya meliputi Hongkong, Macau dan Taiwan.

Continue reading

Visa Dubai Tanpa Maskapai Emirates / Etihad

Terimakasih untuk grub Backpacker International tanpa dirimu saya tidak akan dapat info yang bermanfaat ini. Jadi ceritanya akan ada keperluan sebulan mendatang ke Dubai (Uni Emirate Arab) yang mana untuk negara ini bagi kewarganegaraan Indonesia perlu mengajukan Visa dulu / tidak bisa menggunakan visa on arrival diatas kunjungan 3×24 jam.

Setelah ngubek2 mencari sana sini, banyak yg mereferensikan untuk pembuatan visa ini perlu menggunakan maskapai Emirates / Etihad sebagai syarat untuk pembuatan Visa UAE, yang mana rata2 harga tiket tidak cocok untuk kantong mahasiwa + masih budak korporate seperti saya ini yang menggunakan maskapai seadanya (baca: sortir tiket pesawat paling murah). Pencarian saya berakhir di grub Backpacker Indonesia, bertanya tentang visa UAE. Ada member yang memberikan informasi terkait pembuatan visa melalui website Etihad, refer ke link https://singleminglepringles.wordpress.com/2018/12/04/mari-mengajukan-visa-uni-emirat-arab-di-website-etihad/

Setelah saya cek di web site nya Etihad ternyata memang ada + bisa apply visa lewat situsnya dan juga ada keterangan seperti berikut yang membuat saya tercengang.