From 6ae9ad20fc97a7f666a4cdaa2d1ae3f17aa27f6e Mon Sep 17 00:00:00 2001 From: Kameron Kenny - pi501 Date: Fri, 12 Sep 2025 15:36:28 -0400 Subject: [PATCH] lb and health check --- .gitignore | 2 ++ data/nginx/sites/kameronkenny_com.conf | 8 +++++++- docker-compose.yml | 10 +++++++--- health_check.sh | 14 ++++++++++++++ 4 files changed, 30 insertions(+), 4 deletions(-) create mode 100755 health_check.sh diff --git a/.gitignore b/.gitignore index 68f5d13..2fc2c5b 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ /data/certbot +*.log +old diff --git a/data/nginx/sites/kameronkenny_com.conf b/data/nginx/sites/kameronkenny_com.conf index 6595b8a..28128ca 100644 --- a/data/nginx/sites/kameronkenny_com.conf +++ b/data/nginx/sites/kameronkenny_com.conf @@ -1,3 +1,9 @@ +upstream kameronkenny_com { + server 10.99.22.51:4000; + server 10.99.22.52:4000; + server 10.99.22.53:4000; +} + server { listen 80; server_name kameronkenny.com www.kameronkenny.com blog.kameronkenny.com photos-test.kameronkenny.com; @@ -23,7 +29,7 @@ server { ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; location / { - proxy_pass http://10.99.22.51:4000; + proxy_pass http://kameronkenny_com; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; diff --git a/docker-compose.yml b/docker-compose.yml index 3f31ef7..166cd57 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,6 +7,10 @@ volumes: certbot_www: driver: local +networks: + pub_lb_net: + external: true + services: nginx: image: nginx:1.15-alpine @@ -15,10 +19,10 @@ services: - ./data/nginx:/etc/nginx/conf.d - ./data/certbot/conf:/etc/letsencrypt - ./data/certbot/www:/var/www/certbot - ports: - - "80:80" - - "443:443" command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'" + networks: + pub_lb_net: + ipv4_address: 10.99.81.241 certbot: image: certbot/certbot restart: unless-stopped diff --git a/health_check.sh b/health_check.sh new file mode 100755 index 0000000..b0d120f --- /dev/null +++ b/health_check.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +TIMEOUT=2 + +function no_good { + cd /home/kkenny/src/docker/nginx-certbot + echo "[$(date)] $1 has failed, restarting." >> health.log + docker compose down >> health.log 2>&1 + docker compose up -d >> health.log 2>&1 + exit 1 +} + +curl -s --connect-timeout $TIMEOUT https://kameronkenny.com >/dev/null 2>&1 || no_good "kameronkenny.com" +curl -s --connect-timeout $TIMEOUT https://thelinux.pro >/dev/null 2>&1 || no_good "thelinux.pro"