2015-08-07 16:25:38 +01:00
# Nginx Resources [](https://github.com/sindresorhus/awesome)
2014-11-29 16:18:21 +01:00
2015-11-07 23:39:08 -08:00
A collection of resources covering Nginx, Nginx + Lua, OpenResty and Tengine.
2014-11-29 16:18:21 +01:00
2017-02-07 11:01:34 +01:00
This list is maintained by [Frederic Cambus ](https://www.cambus.net ). For updates, follow me on Twitter: [@fcambus ](https://twitter.com/fcambus )
2014-11-29 16:18:21 +01:00
2014-12-27 11:17:36 +01:00
## Understanding Nginx
2015-12-07 18:06:57 +01:00
- [History of Nginx ](https://www.nginx.com/wp-content/uploads/2014/11/Infographic_History-of-Nginx_FulI_20141101.png )
- [Understanding Nginx versioning ](https://www.nginx.com/blog/nginx-1-6-1-7-released/ )
2019-08-21 13:32:31 +02:00
- [Interview with the creator of Nginx ](https://web.archive.org/web/20180614224054/http://mindend.com/interview-with-the-creator-of-nginx/ )
2017-02-02 18:18:02 +01:00
- [Interview with Igor Sysoev, author of Apache's competitor NGINX ](http://freesoftwaremagazine.com/articles/interview_igor_sysoev_author_apaches_competitor_nginx/ )
- [The case for Nginx in front of application servers ](https://www.cambus.net/the-case-for-nginx-in-front-of-application-servers/ )
2020-06-05 15:54:16 +02:00
- [Nginx Optimization: understanding sendfile, tcp_nodelay and tcp_nopush ](https://thoughts.t37.net/nginx-optimization-understanding-sendfile-tcp-nodelay-and-tcp-nopush-c55cdd276765 )
2014-12-27 11:17:36 +01:00
2014-12-27 16:41:20 +01:00
## Architecture
2020-06-05 16:27:52 +02:00
- [The Architecture of Open Source Applications (Volume 2): nginx ](https://aosabook.org/en/nginx.html )
2014-12-27 16:41:20 +01:00
- [Nginx Guts - Shedding light on Nginx internals ](http://www.nginxguts.com/category/nginx/ )
2020-06-05 15:54:16 +02:00
- [Nginx discovery journey ](https://www.nginx-discovery.com/ )
- [Nginx Internals ](https://www.slideshare.net/joshzhu/nginx-internals )
2015-12-07 18:06:57 +01:00
- [Inside NGINX: How We Designed for Performance & Scale ](https://www.nginx.com/blog/inside-nginx-how-we-designed-for-performance-scale/ )
- [Thread Pools in NGINX ](https://www.nginx.com/blog/thread-pools-boost-performance-9x/ )
2014-12-27 16:41:20 +01:00
2015-11-07 23:39:08 -08:00
## Configuration
2014-12-27 10:20:58 +01:00
2020-06-05 16:27:52 +02:00
- [Beginner's Guide ](https://nginx.org/en/docs/beginners_guide.html )
- [Alphabetical index of variables ](https://nginx.org/en/docs/varindex.html )
2015-12-07 18:06:57 +01:00
- [Nginx Pitfalls ](https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/ )
2020-06-05 15:54:16 +02:00
- [Useful Rewrites for Nginx ](https://blog.engineyard.com/useful-rewrites-for-nginx )
- [Nginx Configuration Primer ](https://blog.martinfjordvald.com/nginx-primer/ )
- [Nginx Primer 2: From Apache to Nginx ](https://blog.martinfjordvald.com/nginx-primer-2-from-apache-to-nginx/ )
- [Understanding the Nginx Configuration Inheritance Model ](https://blog.martinfjordvald.com/understanding-the-nginx-configuration-inheritance-model/ )
2014-12-27 10:20:58 +01:00
- [Nginx HTTP server boilerplate configs ](https://github.com/h5bp/server-configs-nginx )
2017-02-02 18:18:02 +01:00
- [Nginx Boilerplate - Configuration template and a set of handy must-have snippets ](https://github.com/nginx-boilerplate/nginx-boilerplate )
2015-06-07 22:35:08 +02:00
- [How to Configure OCSP Stapling in Apache and Nginx ](https://sslmate.com/blog/post/ocsp_stapling_in_apache_and_nginx )
2020-06-05 15:54:16 +02:00
- [NGINX Config - Online nginx configuration generator ](https://www.digitalocean.com/community/tools/nginx )
2021-11-08 10:25:58 +01:00
- [Nice nginx features for developers ](https://alex.dzyoba.com/blog/nginx-features-for-developers/ )
- [Nice nginx features for operators ](https://alex.dzyoba.com/blog/nginx-features-for-operators/ )
2022-03-09 10:31:30 +01:00
- [Avoiding the Top 10 NGINX Configuration Mistakes ](https://www.nginx.com/blog/avoiding-top-10-nginx-configuration-mistakes/ )
2022-03-09 10:33:14 +01:00
- [Gixy - Nginx configuration static analyzer ](https://github.com/yandex/gixy )
2023-06-02 12:23:33 +04:00
- [Nginx common configuration - Universal config and snippets ](https://github.com/tldr-devops/nginx-common-configuration )
2014-12-27 10:20:58 +01:00
2014-12-27 16:41:20 +01:00
## Tutorials
2014-12-27 10:31:28 +01:00
2020-06-05 15:54:16 +02:00
- [NGINX and NGINX Plus Admin Guide ](https://docs.nginx.com/nginx/admin-guide/ )
2017-02-02 18:18:02 +01:00
- [agentzh's Nginx Tutorials ](https://openresty.org/download/agentzh-nginx-tutorials-en.html ) ([Source ](https://github.com/openresty/nginx-tutorials ))
2020-06-05 15:54:16 +02:00
- [Introduction to nginx.conf scripting ](https://agentzh.org/misc/slides/nginx-conf-scripting/nginx-conf-scripting.html )
- [Load Balancing with NGINX and NGINX Plus ](https://www.nginx.com/blog/load-balancing-with-nginx-plus/ ) ([Part 2 ](https://www.nginx.com/blog/load-balancing-with-nginx-plus-part-2/ ))
- [Optimizing Nginx for High Traffic Loads ](https://blog.martinfjordvald.com/optimizing-nginx-for-high-traffic-loads/ )
2015-12-07 18:06:57 +01:00
- [NGINX as a WebSockets Proxy ](https://www.nginx.com/blog/websocket-nginx/ )
- [HTTP Keepalive Connections and Web Performance ](https://www.nginx.com/blog/http-keepalives-and-web-performance/ )
2017-02-02 18:18:02 +01:00
- [CORS on Nginx ](https://enable-cors.org/server_nginx.html )
- [Serving precompressed content with Nginx and Zopfli ](https://www.cambus.net/serving-precompressed-content-with-nginx-and-zopfli/ )
- [Nginx on FreeBSD ](https://www.cambus.net/nginx-on-freebsd/ )
2015-08-09 16:38:21 +02:00
- [Using New Debugging Features to Probe NGINX Internals ](https://www.nginx.com/blog/new-debugging-features-probe-nginx-internals/ )
2016-10-03 22:11:24 +02:00
- [Performing A/B Testing with NGINX and NGINX Plus ](https://www.nginx.com/blog/performing-a-b-testing-nginx-plus/ )
2022-04-08 19:04:17 +02:00
- [Improving NGINX Performance with Kernel TLS and SSL_sendfile() ](https://www.nginx.com/blog/improving-nginx-performance-with-kernel-tls/ )
2014-12-27 10:31:28 +01:00
2014-11-29 16:30:17 +01:00
## Modules development
2020-06-05 16:27:52 +02:00
- [Official Development Guide ](https://nginx.org/en/docs/dev/development_guide.html )
2020-06-05 15:54:16 +02:00
- [Guide to Nginx Module Development ](https://www.evanmiller.org/nginx-modules-guide.html )
- [Advanced Topics In Nginx Module Development ](https://www.evanmiller.org/nginx-modules-guide-advanced.html )
2015-12-07 18:06:57 +01:00
- [Developing Nginx Modules ](https://www.airpair.com/nginx/extending-nginx-tutorial )
2014-11-29 16:30:17 +01:00
2014-12-27 16:41:20 +01:00
## APIs
2014-12-06 23:57:08 +01:00
2017-02-07 11:01:34 +01:00
- [Telize - JSON IP and GeoIP REST API (IP Geolocation) built on Nginx and Lua ](https://www.telize.com )
2016-02-24 09:29:53 +01:00
- [GIN - JSON-API framework ](http://gin.io/ )
2020-06-05 15:54:16 +02:00
- [Outbound API rate limits: the nginx way ](https://www.monterail.com/blog/2011/outbound-api-rate-limits-the-nginx-way )
- [Using Nginx to comply with a third-party API's rate limits ](https://vitobotta.com/2014/01/12/nginx-rate-limits/ )
2014-12-27 10:21:41 +01:00
- [Simple API with Nginx and PostgreSQL ](http://rny.io/nginx/postgresql/2013/07/26/simple-api-with-nginx-and-postgresql.html )
2020-06-05 15:54:16 +02:00
- [Kong - Management Layer for Microservices and APIs ](https://konghq.com/kong/ )
2014-12-06 23:57:08 +01:00
2014-12-27 16:41:20 +01:00
## Hacks
2014-12-25 15:21:14 +01:00
2015-12-07 18:06:57 +01:00
- [Nginx JSON hacks ](https://web.archive.org/web/20140921162448/http://www.gabrielweinberg.com/blog/2011/07/nginx-json-hacks.html )
2020-06-05 15:54:16 +02:00
- [Using Environment Variables In Nginx.conf ](https://web.archive.org/web/20170712003702/https://docs.apitools.com/blog/2014/07/02/using-environment-variables-in-nginx-conf.html )
2017-02-02 18:18:02 +01:00
- [Log rotation directly within Nginx configuration file ](https://www.cambus.net/log-rotation-directly-within-nginx-configuration-file/ )
2015-08-30 10:10:57 +02:00
- [Realtime pixel tracking with Nginx, syslog-ng, and Redis ](https://benwilber.github.io/nginx/redis/syslog/pixel-tracking/2013/09/13/realtime-pixel-tracking-with-nginx-syslog-ng-and-redis.html )
2015-08-30 10:11:15 +02:00
- [Dynamic log formats in Nginx ](https://benwilber.github.io/nginx/syslog/logging/2015/08/26/dynamic-log-formats-in-nginx.html )
2015-12-07 16:45:12 +01:00
- [Capture and delay unwanted requests ](https://github.com/p0pr0ck5/lua-resty-tarpit )
2020-06-05 15:54:16 +02:00
- [Nginx: a caching, thumbnailing, reverse proxying image server? ](https://charlesleifer.com/blog/nginx-a-caching-thumbnailing-reverse-proxying-image-server-/ )
2014-12-25 15:21:14 +01:00
2014-12-27 16:41:20 +01:00
## Tips
2014-12-27 10:18:28 +01:00
2020-06-05 15:54:16 +02:00
- [Things you didn't know Nginx could do ](https://www.slideshare.net/sarahnovotny/5-things-you-didnt-know-nginx-could-do )
2015-03-17 23:29:38 +01:00
- [Finding the nginx gzip_comp_level sweet spot ](https://mjanja.ch/2015/03/finding-the-nginx-gzip_comp_level-sweet-spot/ )
2021-11-08 10:25:58 +01:00
- [nginx mirroring tips and tricks ](https://alex.dzyoba.com/blog/nginx-mirror/ )
2014-12-27 10:18:28 +01:00
2014-12-06 23:49:47 +01:00
## Nginx + Lua
2020-06-05 15:54:16 +02:00
- [Nginx, Lua, and beyond ](https://agentzh.org/misc/slides/nginx-lua-and-beyond.pdf )
2015-12-07 18:06:57 +01:00
- [Pushing Nginx to its limit with Lua ](https://blog.cloudflare.com/pushing-nginx-to-its-limit-with-lua/ )
2020-06-05 15:54:16 +02:00
- [Augmenting APIs with Nginx and Lua ](https://tech.3scale.net/2013/01/09/augment-your-api-without-touching-it )
- [Adding OAuth Support to Nginx via Lua ](https://chairnerd.seatgeek.com/oauth-support-for-nginx-with-lua/ )
- [Scripting libdrizzle with Lua inside Nginx ](https://agentzh.org/misc/slides/libdrizzle-lua-nginx.pdf )
2015-12-07 18:20:13 +01:00
- [Nginx and Lua ](https://web.archive.org/web/20141223070856/http://devblog.mixlr.com/2012/09/01/nginx-lua/ )
2017-02-02 18:18:02 +01:00
- [Writing an Nginx authentication module in Lua ](https://www.stavros.io/posts/writing-an-nginx-authentication-module-in-lua/ )
2020-06-05 15:54:16 +02:00
- [Scaling TextRazor in the Cloud with Nginx and Lua ](https://www.textrazor.com/blog/2013/03/scaling-textrazor-in-the-cloud-with-nginx-and-lua.html )
- [LSSO - Lua + Nginx SSO System with an OAuth Backend ](https://github.com/pirogoeth/lsso )
- [Measuring Nginx Cache Performance using Lua and Redis ](https://charlesleifer.com/blog/measuring-nginx-cache-performance-using-lua-and-redis/ )
2020-12-06 21:14:22 +01:00
- [nginx-lua - Nginx 1.19+ with LUA support based on Alpine Linux, Amazon Linux, CentOS, Debian, Fedora and Ubuntu. ](https://github.com/fabiocicerchia/nginx-lua )
2014-12-06 23:49:47 +01:00
2014-12-06 23:45:19 +01:00
## OpenResty
2017-02-02 18:18:02 +01:00
- [OpenResty - Fast web app server by extending Nginx ](https://openresty.org/en/ )
2020-06-05 15:54:16 +02:00
- [Lapis - A web framework for Lua or MoonScript powered by OpenResty ](https://leafo.net/lapis/ )
- [Nginx image processing server with OpenResty and Lua ](https://leafo.net/posts/creating_an_image_server.html )
2014-12-06 23:45:19 +01:00
- [Building an OpenResty events server ](https://github.com/cagerton/dropthat/ )
2020-06-05 15:54:16 +02:00
- [SysAdvent 2014 - OpenResty, Nginx and Lua ](https://sysadvent.blogspot.com/2014/12/day-22-largely-unappreciated.html ) ([Source ](https://github.com/lusis/sysadvent-2014 ))
- [OpenResty (Nginx) with dynamically generated certificates ](https://blog.dutchcoders.io/openresty-with-dynamic-generated-certificates/ )
- [Ceryx - A dynamic reverse proxy ](https://ide.sourcelair.com/blog/articles/75/ceryx-dynamic-nginx )
- [An Introduction To OpenResty ](https://openmymind.net/An-Introduction-To-OpenResty-Nginx-Lua/ )
- [Programming OpenResty (written by the OpenResty creator) ](https://openresty.gitbooks.io/programming-openresty/content/ )
2016-02-24 09:30:13 +01:00
- [VeryNginx - Nginx distribution which provides WAF, Control Panel, and Dashboards ](https://github.com/alexazhou/VeryNginx )
2014-12-06 23:45:19 +01:00
2014-12-06 23:38:58 +01:00
## Tengine
2020-06-05 15:54:16 +02:00
- [Tengine Web Server ](https://tengine.taobao.org )
2017-02-02 18:18:02 +01:00
- [Difference between OpenResty and Tengine ](https://github.com/openresty/openresty/issues/54 )
2014-12-27 16:41:20 +01:00
## Talks
2020-01-19 20:51:52 +01:00
- [NGINX Conference 2019 Videos ](https://www.youtube.com/playlist?list=PLGz_X9w9raXflDvBv642YFqT0UTqQGFsH )
2019-08-21 13:38:44 +02:00
- [NGINX Conference 2018 Videos ](https://www.youtube.com/playlist?list=PLGz_X9w9raXe_Vc708VKvr5KJ4gnf1WxS )
2017-12-10 00:10:11 +01:00
- [NGINX Conference 2017 Videos ](https://www.youtube.com/playlist?list=PLGz_X9w9raXeT-z_rcZ9yF0kV5SENZ-yt )
2017-06-04 12:06:38 +03:00
- [NGINX Conference 2016 Videos ](https://www.youtube.com/playlist?list=PLGz_X9w9raXcOsB_dT26iu0BvbSxWYG1g )
2015-11-08 19:18:37 +01:00
- [NGINX Conference 2015 Videos ](https://www.youtube.com/playlist?list=PLGz_X9w9raXdED9BR6GQ61A6d3fBzjpbn )
2014-12-27 16:41:20 +01:00
- [NGINX Conference 2014 Videos ](https://www.youtube.com/playlist?list=PLGz_X9w9raXewvc6tjIGGFZ6DBKHEld3k )
2015-12-07 18:06:57 +01:00
- [NGINX Conference ](https://www.nginx.com/nginxconf/ )
2014-12-27 16:41:20 +01:00
- [NGINX User Summit 2014 - Lightning talks ](https://www.youtube.com/playlist?list=PLGz_X9w9raXfTnRnI6Xl0LMhAKoTVVZv8 )
2015-07-19 12:59:00 +02:00
## License
2017-02-02 18:18:02 +01:00
[](https://creativecommons.org/publicdomain/zero/1.0/)
2015-07-19 12:59:00 +02:00
2017-02-02 18:18:02 +01:00
To the extent possible under law, [Frederic Cambus ](https://www.cambus.net ) has waived all copyright and related or neighboring rights to this work.