Replace per-request DNS resolution (variable-based proxy_pass) with static upstream blocks and keepalive connection pools. This reuses TLS connections through the Tailscale tunnel instead of handshaking per request, which should significantly reduce latency at >1 req/s. Trade-off: DNS is resolved at config load, not per-request. If Tailscale Ingress pods get new IPs, run `mise run fly-reload` to re-resolve. Also adds mise-tasks/fly-reload for nginx config reload without full redeploy. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
16 lines
611 B
Bash
Executable file
16 lines
611 B
Bash
Executable file
#!/usr/bin/env bash
|
|
#MISE description="Reload Fly.io proxy nginx config (re-resolves upstream DNS)"
|
|
|
|
set -euo pipefail
|
|
|
|
export FLY_API_TOKEN
|
|
FLY_API_TOKEN="$(op read 'op://blumeops/fly.io admin/add more/deploy-token')"
|
|
|
|
# SSH into the Fly machine and send nginx a reload signal.
|
|
# This re-resolves upstream DNS without a full redeploy.
|
|
APP="blumeops-proxy"
|
|
MACHINE_ID=$(fly machines list -a "$APP" --json | python3 -c "import sys,json; print(json.load(sys.stdin)[0]['id'])")
|
|
|
|
echo "Reloading nginx on machine $MACHINE_ID..."
|
|
fly ssh console -a "$APP" -C "nginx -s reload"
|
|
echo "Done. Upstream DNS re-resolved."
|