What you'll learn:
- Layer 7 Load Balancing between services
- Layer 4 Load Balancing between services
- Setup NGINX as a Web Server
- TLS Passthrough vs TLS Termination
- Block Undesired Requests and Re-route requests to different services
- Enable HTTPS with letsEncrypt
- Enable HTTP/2 with NGINX
- Enable TLS 1.3 with NGINX
- NGINX Timeouts
- Scaling WebSockets with NGINX
- Load Balancing WebSockets with NGINX
NGINX is an open-source web server written in C and can also be used as a reverse proxy and a load balancer. This class Is an introduction to NGINX, by the end of this class you will be able to understand the fundamentals of NGINX and spin up your own instance and even secure it with a legitimate certificate.
Here are the topics that I will discuss:
What is NGINX?
NGINXUse Cases
Layer 4 and Layer 7 Proxying in Nginx
NGINXTimoouts
Example
Install Nginx (mac)
Nginx as a Web Server
Static content
Regular expression in NGINX
proxy_pass
Nginx as a Layer 7 Proxy
Proxy to 4 backend NodeJS services (docker)
IP_Hash load balancing
Split load to multiple backends (app1/app2)
Block certain requests (/admin)
NGINX as a Layer 4 Proxy
Create DNS record
Enable HTTPS on NGINX (lets encrypt)
Enable TLS 1.3 on NGINX
Enable HTTP/2 on NGINX
A small blurb about NGINX
NGINX is one of a handful of servers written to address the C10K problem. Unlike traditional servers, NGINX doesn’t rely on threads to handle requests. Instead it uses a much more scalable event-driven (asynchronous) architecture. This architecture uses small, but more importantly, predictable amounts of memory under load. Even if you don’t expect to handle thousands of simultaneous requests, you can still benefit from NGINX’s high-performance and small memory footprint. NGINX scales in all directions: from the smallest VPS all the way up to large clusters of servers.