# nginx-proxy/nginx-proxy

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/nginx-proxy-nginx-proxy).**

19,745 stars · 3,067 forks · Python · mit

## Links

- GitHub: https://github.com/nginx-proxy/nginx-proxy
- awesome-repositories: https://awesome-repositories.com/repository/nginx-proxy-nginx-proxy.md

## Topics

`docker` `docker-gen` `nginx` `reverse-proxy`

## Description

This project is an automated reverse proxy and load balancer designed for containerized environments. It functions by monitoring container lifecycle events through the container runtime API, allowing it to dynamically generate and update web server configurations in real time as services start, stop, or change their network status.

The system distinguishes itself through its ability to orchestrate proxy processes without dropping active connections, ensuring continuous availability during configuration updates. It utilizes a template-based engine to map container metadata to routing logic, enabling complex traffic distribution across multiple service instances based on hostnames or URL path prefixes.

Beyond core routing, the project provides a comprehensive suite of traffic management and security capabilities. It handles SSL and TLS termination at the proxy layer to offload cryptographic overhead from backend services and supports automated certificate management. Additionally, it enforces network access controls and client authentication to secure services within isolated environments.

The software is configured through environment variables, container labels, and external configuration files, providing flexibility for diverse application requirements.

## Tags

### Networking & Communication

- [Reverse Proxies](https://awesome-repositories.com/f/networking-communication/reverse-proxies.md) — Automatically generates proxy configurations by monitoring Docker lifecycle events for service discovery. ([source](https://github.com/nginx-proxy/nginx-proxy/tree/main/docs/))
- [Load Balancers](https://awesome-repositories.com/f/networking-communication/load-balancers.md) — Distributes incoming traffic across multiple containers sharing the same virtual host by applying configurable algorithms to ensure even workload distribution. ([source](https://github.com/nginx-proxy/nginx-proxy/tree/main/docs/))
- [Host-Based Matchers](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-routing-traffic-management/request-routing/expression-based-matchers/host-based-matchers.md) — Directs incoming requests to specific containers based on virtual host names, supporting complex matching patterns like wildcards and regular expressions. ([source](https://github.com/nginx-proxy/nginx-proxy/tree/main/docs/))
- [Domain Traffic Filters](https://awesome-repositories.com/f/networking-communication/domain-traffic-filters.md) — Directs traffic to different backend services based on hostnames or URL paths to host multiple applications on one domain.
- [Host Header Matchers](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-routing-traffic-management/request-routing/host-header-matchers.md) — Maps incoming HTTP request headers to specific backend container endpoints based on domain names and URL path prefixes.
- [Reverse Proxy Orchestrators](https://awesome-repositories.com/f/networking-communication/networking/reverse-proxies/reverse-proxy-orchestrators.md) — Orchestrates long-running proxy processes that reload routing tables dynamically without dropping active connections.
- [Proxy Configurations](https://awesome-repositories.com/f/networking-communication/proxy-configurations.md) — Allows overriding default proxy behavior through custom configuration files, environment variables, and container labels. ([source](https://github.com/nginx-proxy/nginx-proxy/tree/main/docs/))

### Web Development

- [Path-Based Routers](https://awesome-repositories.com/f/web-development/route-path-aliasing/path-based-routers.md) — Directs requests to different containers based on URL path prefixes, allowing multiple independent services to share a single domain name. ([source](https://github.com/nginx-proxy/nginx-proxy/tree/main/docs/))

### Security & Cryptography

- [SSL/TLS Certificate Management](https://awesome-repositories.com/f/security-cryptography/cryptography/ssl-tls-certificate-management.md) — Handles encrypted traffic by automating certificate management and offloading secure connections for backend services.
- [Client Certificate Authentication](https://awesome-repositories.com/f/security-cryptography/client-certificate-authentication.md) — Verifies incoming traffic using basic authentication or client certificates to ensure only authorized access. ([source](https://github.com/nginx-proxy/nginx-proxy/tree/main/docs/))
- [Network Access Controls](https://awesome-repositories.com/f/security-cryptography/network-infrastructure-security/web-network-security/network-security/network-routing-access-control/network-access-controls.md) — Restricts access to sensitive services by isolating containers and enforcing authentication for incoming traffic.

### Development Tools & Productivity

- [Container Orchestration Tools](https://awesome-repositories.com/f/development-tools-productivity/development-environment-management/container-orchestration-tools.md) — Manages network traffic routing and load balancing for services running within isolated container environments.

### DevOps & Infrastructure

- [Docker Socket Orchestrators](https://awesome-repositories.com/f/devops-infrastructure/container-orchestration/container-runtimes/runtime-configuration-interfaces/docker-socket-orchestrators.md) — Interacts with the local container daemon socket to programmatically detect lifecycle changes and trigger updates.
- [SSL Termination Proxies](https://awesome-repositories.com/f/devops-infrastructure/sidecar-proxies/ssl-termination-proxies.md) — Handles SSL and TLS handshake termination at the proxy layer to offload cryptographic overhead.
- [Configuration-Driven Templating Engines](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/template-and-generation-engines/configuration-driven-templating-engines.md) — Uses a templating engine to transform container metadata into valid server configuration files during runtime.
