Streamline Your Proxies: FlowForward

This proxy component is part of a series of proxies that are modular in design and require almost zero configuration. The series currently includes an SSL terminator, forward proxy and a caching proxy. Over time, I will add a a rate limiter, a loadbalancer/router, and a CDN proxy/image resizer.


So often I need a forward proxy in my projects. I forward proxy is a middleman between a client server and some api or other resource far away from the client.

Mostly I use nginx for my proxies, but the configuration of the proxies can be tricky and cumbersome. For a simple proxy I'd need to write a project with aDockerFile and configuration, create a docker image, build it and deploy it to some repository like DockerHub or ECR.

And I'd have to think of whether the remote host has SNI ssl certificates, timeouts, whether the client will upload files, and all the pitfalls with it. And maybe the upstream is a load balancer with changing ip addresses, like an AWS ALB. And repeat.

So I decided to create an instantly usable, near zero configuration, forward proxy, that just needs some environment variables to launch: 'FlowForward proxy'.

Launching the proxy is just as easy as this:


docker run --rm \
    -p "8772:8772" \
    -e "PROXY_BACKEND=www.google.com" \
    -e "PROXY_PORT=8772" \
    24hoursmedia/flowforward-proxy:1-nginx1.25-alpine3.18-slim

This post outlines the strategies and thought processes behind my DevOps projects. It reflects my dedication to adopting best practices in DevOps and staying aligned with the latest technological advancements.



Post date: December, 2023

Skills

  • Docker multiplatform build
  • Nginx
  • Bash