Stroomlijn je Proxies: FlowForward

Deze proxy component maakt deel uit van een serie proxies, die modulair van opzet zijn en vrijwel zero-config nodig hebben. In de serie zijn nu onder andere aanwezig een SSL terminator, een forward proxy en een caching proxy. In de loop der tijd zal ik een een rate limiter, een router/load balancer en een cdn proxy/image resizer toevoegen.



Vaak heb ik een forward proxy nodig in mijn projecten. Een forward proxy is een middle-man tussen een client server en een api of een andere bron ver weg van de client.

Meestal gebruik ik nginx voor mijn proxies, maar de configuratie van de proxies kan lastig en omslachtig zijn. Voor een eenvoudige proxy zou ik een project moeten schrijven met een DockerFile en configuratie, een docker image creëren, bouwen en uitrollen naar een repository zoals DockerHub of ECR.

En ik zou moeten nadenken of de externe host SNI ssl certificaten heeft, time-outs, of de client bestanden zal uploaden, en alle valkuilen die daarbij horen. En misschien is de upstream een load balancer met veranderende ip-adressen, zoals een AWS ALB. And repeat.

Dus besloot ik een direct bruikbare, bijna configuratieloze, forward proxy te creëren, die alleen enkele omgevingsvariabelen nodig heeft om te starten: 'FlowForward proxy'.

Het lanceren van de proxy is net zo eenvoudig als dit:


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

Met deze post wil ik inzicht geven in de strategieën en gedachten achter mijn DevOps-projecten. Het laat mijn inzet zien om de DevOps best practices te volgen en up-to-date te blijven met technologische vooruitgang.



Datum: December, 2023

Vaardigheden

  • Docker multiplatform build
  • Nginx
  • Bash