Convert Figma logo to code with AI

agile6v logoawesome-nginx

A curated list of awesome Nginx distributions, 3rd party modules, Active developers, etc. :octocat:

1,181
124
1,181
2

Top Related Projects

26,708

The official NGINX Open Source repository.

12,993

High Performance Web Platform Based on Nginx and LuaJIT

Nginx HTTP server boilerplate configs

A collection of resources covering Nginx, Nginx + Lua, OpenResty and Tengine

How to improve NGINX performance, security, and other important things.

⚙️ NGINX config generator on steroids 💉

Quick Overview

Awesome-nginx is a curated list of NGINX resources, including third-party modules, real-world examples, books, and more. It serves as a comprehensive reference for NGINX users, developers, and administrators, providing a wealth of information and tools to enhance NGINX functionality and performance.

Pros

  • Extensive collection of NGINX-related resources in one place
  • Regularly updated with new content and contributions from the community
  • Well-organized categories for easy navigation and discovery
  • Includes both open-source and commercial tools and modules

Cons

  • May be overwhelming for beginners due to the large amount of information
  • Some listed resources might become outdated or unmaintained over time
  • Lacks detailed explanations or comparisons of listed items
  • Primarily in English, which may limit accessibility for non-English speakers

Competitor Comparisons

26,708

The official NGINX Open Source repository.

Pros of nginx

  • Official repository with the most up-to-date source code
  • Contains comprehensive documentation and build instructions
  • Allows direct contribution to the NGINX project

Cons of nginx

  • Focuses solely on the core NGINX software
  • May be overwhelming for users seeking curated resources or extensions

Code comparison

nginx:

ngx_int_t
ngx_http_core_content_phase(ngx_http_request_t *r,
    ngx_http_phase_handler_t *ph)
{
    size_t     root;
    ngx_int_t  rc;
    ngx_str_t  path;

awesome-nginx:

## Modules

### Core modules
* [nginx-rtmp-module](https://github.com/arut/nginx-rtmp-module) - NGINX-based Media Streaming Server.
* [xss-nginx-module](https://github.com/openresty/xss-nginx-module) - Native support for cross-site scripting (XSS) in an nginx.

Summary

The nginx repository is the official source for NGINX, providing the complete codebase and documentation. It's ideal for developers working directly with NGINX or contributing to its development.

The awesome-nginx repository is a curated list of NGINX resources, modules, and tools. It serves as a valuable reference for users looking to extend NGINX functionality or find related projects.

While nginx offers the core software, awesome-nginx provides a broader overview of the NGINX ecosystem, making it easier for users to discover and explore various NGINX-related resources and extensions.

12,993

High Performance Web Platform Based on Nginx and LuaJIT

Pros of OpenResty

  • Full-fledged web application server with Lua scripting capabilities
  • Extensive ecosystem with numerous modules and libraries
  • High performance and scalability for complex web applications

Cons of OpenResty

  • Steeper learning curve due to Lua scripting requirements
  • May be overkill for simple web serving needs
  • Less focus on curating external resources and tools

Code Comparison

OpenResty example:

server {
    location /hello {
        content_by_lua_block {
            ngx.say("Hello, OpenResty!")
        }
    }
}

Awesome-Nginx example (standard Nginx configuration):

server {
    location /hello {
        return 200 "Hello, Nginx!";
    }
}

Summary

OpenResty is a full-featured web application server built on Nginx, offering powerful Lua scripting capabilities and a rich ecosystem. It's ideal for complex, high-performance web applications but may be excessive for simpler use cases.

Awesome-Nginx, on the other hand, is a curated list of Nginx resources, modules, and tools. It doesn't provide additional functionality to Nginx itself but serves as a valuable reference for Nginx users and administrators.

While OpenResty extends Nginx's capabilities significantly, Awesome-Nginx focuses on aggregating information and resources for standard Nginx usage. The choice between them depends on your specific needs and level of expertise in Nginx and Lua scripting.

Nginx HTTP server boilerplate configs

Pros of server-configs-nginx

  • Provides ready-to-use configuration files for common NGINX setups
  • Includes detailed comments explaining each configuration directive
  • Regularly updated with best practices and security improvements

Cons of server-configs-nginx

  • Focuses primarily on configuration files, lacking broader NGINX resources
  • May require more customization for specific use cases
  • Less comprehensive in terms of third-party modules and extensions

Code Comparison

server-configs-nginx:

# Compression
gzip on;
gzip_comp_level 5;
gzip_min_length 256;
gzip_proxied any;
gzip_vary on;

awesome-nginx:

# This repository doesn't typically include code snippets,
# as it's primarily a curated list of NGINX resources.

Summary

server-configs-nginx is a practical repository offering ready-to-use NGINX configuration files with detailed explanations. It's ideal for those looking for a solid starting point in NGINX configuration.

awesome-nginx, on the other hand, is a comprehensive list of NGINX resources, including articles, modules, and tools. It's better suited for those seeking a broader understanding of NGINX ecosystem and advanced topics.

While server-configs-nginx provides immediate value with its configuration files, awesome-nginx offers a wider range of resources for learning and extending NGINX functionality. The choice between them depends on whether you need practical configurations or a curated list of NGINX-related resources.

A collection of resources covering Nginx, Nginx + Lua, OpenResty and Tengine

Pros of nginx-resources

  • More comprehensive coverage of NGINX-related topics, including security, performance, and troubleshooting
  • Better organization with clear categories and subcategories
  • Includes links to official NGINX documentation and resources

Cons of nginx-resources

  • Less focus on third-party modules and extensions
  • Fewer links to community-contributed tutorials and guides
  • Not as frequently updated as awesome-nginx

Code Comparison

While both repositories are primarily curated lists of resources, they don't contain significant code samples. However, here's a comparison of their README structures:

nginx-resources:

# Nginx Resources

A collection of resources covering Nginx, Nginx + Lua, OpenResty and more.

* [Nginx](#nginx)
  * [Architecture](#architecture)
  * [Configuration](#configuration)
  * [Directives](#directives)
  * [Modules](#modules)

awesome-nginx:

# Awesome Nginx

A curated list of awesome Nginx distributions, third modules, active developers, etc.

* [Resources](#resources)
    * [Understanding Nginx](#understanding-nginx)
    * [Programming with Nginx](#programming-with-nginx)
    * [Third Modules](#third-modules)

Both repositories serve as valuable resources for NGINX users and developers, with nginx-resources offering a more comprehensive and structured approach, while awesome-nginx provides a greater focus on community contributions and third-party modules.

How to improve NGINX performance, security, and other important things.

Pros of nginx-admins-handbook

  • More comprehensive and detailed guide for NGINX administration
  • Includes practical examples and best practices for various scenarios
  • Regularly updated with new content and improvements

Cons of nginx-admins-handbook

  • May be overwhelming for beginners due to its extensive content
  • Focuses primarily on administration, less on general NGINX resources

Code Comparison

nginx-admins-handbook provides more detailed configuration examples:

server {
    listen 443 ssl http2;
    server_name example.com;
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    # ... more detailed SSL configuration
}

awesome-nginx typically offers simpler, more general examples:

server {
    listen 80;
    server_name example.com;
    location / {
        proxy_pass http://backend;
    }
}

Summary

nginx-admins-handbook is a more in-depth resource for NGINX administration, offering detailed guides and examples. It's ideal for administrators looking to optimize their NGINX setups. awesome-nginx, on the other hand, provides a broader collection of NGINX-related resources, making it suitable for users seeking a variety of tools and information about NGINX.

⚙️ NGINX config generator on steroids 💉

Pros of nginxconfig.io

  • Interactive web-based configuration generator for NGINX
  • User-friendly interface for creating complex NGINX configurations
  • Provides instant preview and downloadable config files

Cons of nginxconfig.io

  • Limited to generating configurations, not a comprehensive resource
  • May not cover all advanced NGINX features or use cases
  • Focused on configuration rather than providing educational content

Code Comparison

nginxconfig.io generates complete NGINX configurations, while awesome-nginx is a curated list of resources. Here's a sample of what nginxconfig.io might generate:

server {
    listen 443 ssl http2;
    server_name example.com;
    root /var/www/example.com;
    
    # SSL configuration
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
}

awesome-nginx doesn't provide code directly but links to resources like:

- [Nginx Tutorials](https://github.com/agile6v/awesome-nginx#tutorials)
- [Nginx Books](https://github.com/agile6v/awesome-nginx#books)
- [Nginx Modules](https://github.com/agile6v/awesome-nginx#modules)

Summary

nginxconfig.io is a practical tool for generating NGINX configurations, while awesome-nginx is a comprehensive list of NGINX resources. nginxconfig.io is more user-friendly for beginners but may lack depth for advanced users. awesome-nginx provides a wider range of resources but requires more effort to navigate and implement.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Awesome Nginx Build Status Awesome

A curated list of awesome nginx distributions, third party modules, active developers and so forth.

If you want to contribute, please submit a pull request.

Feel free to add your project :)

Table of Contents

Well-known Distributions

Embeddable Scripting Languages

Builder

This is bash command line builder that uses this curated list to automate installing and compiling nginx

Third Party Modules

These modules are not distributed with the Nginx source.

C Modules

Rust Modules

  • ngx-rust - Rust bindings for Nginx modules.

Lua Modules

Built-in Modules

For more details, see nginx.org.

Njs Projects

  • njs-types - Provides type script type definitions for njs.
  • njs-examples - Examples of njs usage.
  • nginx-njs-usecases - A collection of njs use cases.
  • njs-acme - ACME protocol implementation in njs allowing Let's Encrypt certificates to be issued directly from nginx.
  • nginx-s3-gateway - S3 gateway for Nginx allowing to proxy requests directly to S3 private buckets.
  • njs-memory-profiler - Tool to understand per-request memory usage of njs scripts.
  • nginx-dns - Example njs configuration for using Nginx with DNS services.
  • njs-prometheus-module - Converts NGINX metrics exposed by the API module to a Prometheus format.
  • nginx-xml-json - Proof-of-concept solution for presenting XML services as a JSON API.
  • mqtt5 - MQTT 5.0 protocol parser implemented in njs.
  • babel-preset-njs - A Babel preset for njs - NGINX JavaScript.
  • njs-typescript-starter - A starting template for developing njs (NGINX JavaScript) scripts for NGINX server in TypeScript.

Tools

  • nginx-devel-utils - Utilities for nginx module development.
  • gixy - Nginx configuration static analyzer
  • no-pool-nginx - replace nginx's pool mechanism with plain malloc & free to help tools like valgrind.
  • nginx-dtrace - An nginx fork that adds dtrace USDT probes.
  • test-nginx - Data-driven test scaffold for Nginx C module and OpenResty Lua library development.
  • nginx-systemtap-toolkit - Real-time analyzing and diagnosing tools for Nginx based on SystemTap.
  • nginx-gdb-utils - GDB Utilities for Nginx, ngx_lua, LuaJIT, and etc.
  • apache2nginx - A command line tool, which can be used to generate nginx config file according to given config files of Apache.
  • nginx-build - seamless nginx builder.
  • puppet-nginx - Puppet Module to manage NGINX on various UNIXes.
  • server-configs-nginx - Nginx HTTP server boilerplate configs.
  • nginx-boilerplate - Awesome Nginx configuration template.
  • ngxtop - Real-time metrics for nginx server.
  • GoAccess - real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems or through your browser.
  • nginx-conf - A collection of useful Nginx configuration snippets.
  • libngxcore - libngxcore is the library built from nginx core APIs..
  • nginx-cache-purge - A bash script for deleting items from Nginx cache.
  • ngx-admintools - Debian Administration Tools for nginx web server.
  • nginx-config-formatter - Nginx config file formatter/beautifier written in Python.
  • veryNginx - A very powerful and friendly nginx base on lua-nginx-module( openresty ) which provide WAF, Control Panel, and Dashboards.
  • akamai-nginx - Autoconfigure nginx based on Akamai property api rules using generated lua.
  • nginxconfig.io - GitHub - Online nginx configuration generator for general purposes.
  • nginx-opentracing - NGINX plugin for OpenTracing.
  • nixy - Nginx auto configuration and service discovery for Mesos/Marathon
  • build-nginx - An nginx build tool to really simplify downloading and building specific versions of nginx with different core and 3rd-party modules.
  • nginx-autoinstall - Compile Nginx from source with custom modules on Debian and Ubuntu
  • nginx-proxy-manager - Webinterface to manage nginx reverse-proxys with Letsencrypt support.
  • bunkerized-nginx - nginx Docker image secure by default.
  • nginx-proxy - Automated nginx proxy for Docker containers using docker-gen.
  • nginx-lua - Nginx 1.19+ with LUA support based on Alpine Linux, Amazon Linux, CentOS, Debian, Fedora and Ubuntu.
  • nginx-testing - Support for integration/acceptance testing of nginx configuration in TypeScript/JavaScript.
  • nginx-binaries - Nginx and njs binaries for Linux (x86_64, aarch64, ppc64le), macOS and Windows; Linux binaries are static so works on every Linux.
  • NPMplus - Docker container for managing Nginx proxy hosts with a simple, powerful interface

Tutorials

Mailing Lists

Forum

Active Developers