Using Nginx for deploying and securing applications in the cloud
1- What is Nginx?
Nginx is a:
- Web server: A web server is server software, or a system of one or more computers dedicated to running this software, that can satisfy client HTTP requests on the public World Wide Web or also on private LANs and WANs. [source]
- Reverse proxy: A reverse proxy server is a type of proxy server that typically sits behind the firewall in a private network and directs client requests to the appropriate backend server.[source]
- Load balancer: A load balancer is a device that acts as a reverse proxy and distributes network or application traffic across a number of servers. Load balancers are used to increase capacity (concurrent users) and reliability of applications. [source]
- Mail proxy: A mail proxy server is a stand-alone machine that is located in front of the actual email server. The mail proxy server is customized to provide any or all of the following services: Web based email via IMAP. Virus scanning. File type blocking. [source]
- HTTP cache: Caching is a technique that stores a copy of a given resource and serves it back when requested. [source]
2- My use cases for Nginx
- Nginx as a reverse proxy and load balancer for applications that I’m deploying in cloud platforms (AWS, GCP, Azure, Heroku)
- Using Nginx authentication modules to create an authentication layer that can be used with applications that I’m deploying in cloud platforms.
3- Installing Nginx and basic commands
4- Nginx basic configuration
5- Nginx basic authentication
6- Nginx advanced authentication with Python
Nginx Cheatsheet: Nginx configurations that developers should know