Nginx
Nginx is a reverse proxy server from Russia with extra features. If proxy server
is meaningless to you, skip Nginx. Nginx is also a light weight Web server competing against lighttpd.
You might see the name when selecting a hosting company for your Web site but you should not have to do anything with it, the hosting company should configure what you need.
Read about Nginx at nginx.org but only if you understand proxy servers and love minimal cryptic documentation.
Licence
Nginx has a BSD style licence. BSD licences are free of restrictions other than a common requirement to mention the original license which may include a reference to the original authors. The only advantage of a BSD style licence over the normal GPL is that you can rip into the code and rebrand it as your own product. The end user of the product does not know who actually created the product.
Proxy server
A proxy server is a server you place in front of multiple Web servers to direct traffic to the right Web server. A small proxy server might be supplied inside a router. A large proxy server is usually a separate physical server. A proxy server can deliver common static files without waking up your Web server, making some Web pages faster.
When you have a Web server that is overloaded, you can move part of the load to the proxy server. Suppose you have a Web server with 8 gigabytes of memory and typical peak usage requires 10 GB, the web server spirals down into overload. You add a proxy server with 8 GB then set the proxy server to handle static images and suddenly 3 GB is served from the proxy server, reducing your Web site to a peak of 7 GB, and your Web server stops choking on the peak load.
Another approach is to add a second Web server then use the proxy server to switch requests between the two Web servers. A big site might have hundreds of servers with the first proxy server just switching the requests to different servers then a second layer of proxy servers delivering static content.
A reverse proxy server
is just a proxy server used in a common configuration in front of Web servers.
Apache, the world's most common Web server, can be made into a proxy server by adding a module named mod_proxy. Apache can work as a caching proxy by adding mod_cache to mod_proxy. Apache with a bunch of add on modules would have a higher overhead than Nginx and equivalents.
Squid
Squid, from www.squid-cache.org, is the world's most popular proxy server and is supplied with most versions of Linux.
You get Squid with Ubuntu. Use Ubuntu and Squid to learn about proxy servers, to practice configuring proxy servers. When you understand proxy servers and have a site growing rapidly, you might consider Nginx as an alternative to Squid. Normally the decision would be made by a specialist network engineer who speaks in a strange language you will not understand.
Hardware is cheap compared to complex tuning of proxy servers. Extra memory and faster processors often do more than you will achieve from replacing Squid with another product. You are more likely to change when you have a very specific unusual requirement not handled by Squid or your hosting company chooses to use another product.
Web server
Nginx competes against Lighttpd, from www.lighttpd.net. The world's most popular Web server is Apache followed by the proprietary IIS from Microsoft. Apache does a lot of things and has a measurable overhead. Lighttpd does less than Apache and, as a result, has less overhead. Nginx uses the same limited approach as Lighttpd to achieve a similar lower overhead.
The overhead is relevant only for delivery of static Web pages and images. The overhead is trivial compared to the workload required to build a dynamic Web page. Look at typical web pages. Some contain simple static text and some images. There is Web server overhead on the original page plus each image. You can reduce overheads by moving the page and images out to proxy server.
Now look at a page that includes dynamic information, perhaps comments in a forum. The page is built from a database and the database overheads are many times more than the Web server overheads, making the web server overheads insignificant. The images can still benefit from delivery from a proxy server.
Web pages from a CMS (content management system) benefit from a Web server optimised to process the Web scripting language used to write the CMS. PHP is the world's most popular Web scripting language and is used by all the significant CMSs. Apache has mod_php for the fastest processing of PHP plus you can plug in PHP cache software to further increase the speed. You would have to carefully compare a lightweight Web server with a properly configured Apache to see a difference.
The main use of Nginx appears to be as a proxy server, not as a light weight Web server.
Conclusion
If your Web hosting company uses Nginx and configures the software for you, use it. Use whatever is supplied and supported by you hosting company or is supplied with your choice of operating system.



