Nginx — динамическое управление upstream

Если вы хотите динамически управлять upstream в nginx через API без перезагрузки и релоада, то вам поможет этот модуль.

Пример конфигурации upstream в nginx

upstream backends {
    zone zone_for_backends 1m;
    server 127.0.0.1:6001;
    server 127.0.0.1:6002;
    server 127.0.0.1:6003;
}

Пример настройка для доступа к API

server {
    listen 6000;
    location /dynamic {
	allow 127.0.0.1;
	deny all;
        dynamic_upstream;
    }
}

Пример вызова:

$ curl "http://127.0.0.1:6000/dynamic?upstream=zone_for_backends"

Ответ:

server 127.0.0.1:6001;
server 127.0.0.1:6002;
server 127.0.0.1:6003;

С помощью API вы сможете посмотреть список серверов в upstream, добавить, удалить, выключить, включить и изменить параметры сервера.
Более подробно можно посмотреть на странице проекта ngx_dynamic_upstream.

Бесплатный SSL сертификат — подключение Let’s Encrypt

Для перевода вашего сайта на HTTPS нам потребуется получить бесплатные сертификаты Let’s Encrypt и настроить их автообновление, т. к. сертификаты даются на 3 месяца.
У нас есть Ubuntu 16.04 и Nginx.
1 — Подключаем репозиторий с приложением Certbot и устанавливаем его

sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-nginx

2 — Получаем два сертификата для вашего сайта «example.com» с www и без

sudo certbot --nginx -d example.com -d www.example.com

3 — Перезапускаем Nginx
4 — Открываем cron

sudo crontab -e

и добавляем запуск автообновления сертификатов

0  0  1  *  *  certbot renew --dry-run