Как проверить работоспособность хостов через HTTPS за балансировщиком нагрузки?
У меня есть NGINX, обслуживающий мой сайт через HTTPS на хостах EC2 за Elastic Load Balancer. Мне нужно настроить надлежащую проверку здоровья в ELB. Тем не менее, я не могу использовать https://www.example.com/ потому что мне нужно проверить работоспособность хоста, а не моего сайта. А с другой стороны, я не могу использовать https://ec2host.amazonaws.com/ потому что сертификат SSL действителен только для моего домена (example.com). Итак, я в конечном итоге использовал проверку TCP-порта 80, что на самом деле является минимальным.
Как настроить правильную проверку работоспособности в ELB, чтобы проверить, правильно ли данный хост доставляет мой веб-сайт по HTTPS?
1 ответ
Мне удалось сделать это, используя подход, описанный здесь: http://scottwb.com/blog/2013/10/28/always-on-https-with-nginx-behind-an-elb/.
В конфиге NGINX я добавил:
- Специальная директива местоположения для URL-адреса проверки работоспособности ("/healthcheck"), которая не применяет HTTPS.
- Перенаправление, если заголовок "X-Forwarded-Proto: https" не существует.