Switch Fly proxy to upstream keepalive pools #337

Merged
eblume merged 6 commits from fly-proxy-keepalive into main 2026-04-17 16:39:52 -07:00
Showing only changes of commit 1236d381eb - Show all commits

Wait for MagicDNS readiness before starting nginx

Upstream blocks resolve DNS at config load. If MagicDNS isn't ready yet
(Tailscale just connected), nginx gets empty resolution and returns 502.
Poll nslookup until resolution works before launching nginx.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Erich Blume 2026-04-17 15:47:21 -07:00

View file

@ -11,10 +11,18 @@ tailscale up --authkey="${TS_AUTHKEY}" --hostname=flyio-proxy
until tailscale status > /dev/null 2>&1; do sleep 1; done until tailscale status > /dev/null 2>&1; do sleep 1; done
echo "Tailscale connected" echo "Tailscale connected"
# Wait for MagicDNS to be ready — upstream blocks resolve DNS at config
# load, so nginx will fail to start if MagicDNS can't resolve yet.
echo "Waiting for MagicDNS..."
until nslookup forge.tail8d86e.ts.net 100.100.100.100 > /dev/null 2>&1; do
sleep 1
done
echo "MagicDNS ready"
# Ensure fail2ban deny file exists before nginx starts # Ensure fail2ban deny file exists before nginx starts
touch /etc/nginx/forge-deny.conf touch /etc/nginx/forge-deny.conf
# Start nginx — MagicDNS is available, health check passes immediately. # Start nginx — MagicDNS is available, upstreams resolved.
nginx -g "daemon off;" & nginx -g "daemon off;" &
NGINX_PID=$! NGINX_PID=$!
echo "Nginx started" echo "Nginx started"