This repo aims to show examples on how to setup reverse proxy using various reverse proxies available in Docker containers. Since we will setup each reverse proxy to do the exact same thing in every scenario, hopefully it gives a better understanding for someone familiar with one of the reverse proxy but not the other ones.
Documentation: dockerreverseproxies.netlify.app
Reverse Proxy | Official Site | Official Docs | GitHub | Docker Hub |
---|---|---|---|---|
Caddy v2 | Link | Link | Link | Link |
HAProxy | Link | Link | Link | Link |
jwilder/nginx-proxy | Link | Link | ||
Traefik v2 | Link | Link | Link | Link |
Scenario | Summary | Link |
---|---|---|
Basic | Shows the bare minimum of setting up each reverse proxy with HTTP only. They resolve the exact same domain, subdomain and subpath. | View scenario |
Secure | Shows how to setup HTTPS and get valid certs from Let's Encrypt (LE). This includes how to get certs from LE's staging server for testing. | View scenario |
- Add Secure (HTTPS) scenario. [ IN PROGRESS ]
- Add Load Balancing scenario.
- Add Basic Auth scenario.
- Explore various variations that enhances the vanilla reverse proxies used above:
- lucaslorentz/caddy-docker-proxy ( GitHub | Docker Hub ): Basically what jwilder/nginx-proxy is for nginx, but for caddy.
- jc21/nginx-proxy-manager ( GitHub | Docker Hub ): Easy UI based management for Nginx
- Create documentation site. [ IN PROGRESS ]
- Possibly a simple checklist/quiz for users to find out which reverse proxies are more suitable for their use case.