У меня есть небольшой экземпляр Linux VPS, настроенный с nginx для прокси-запросов в качестве балансировщика нагрузки для нескольких серверов приложений.
Весь трафик входит в https://app.example.com прокси на эти вышестоящие серверы. Пример конфигурации nginx для балансировщика нагрузки:
upstream app_servers {
server app-1.example.com;
server app-2.example.com;
}
server {
listen 80;
listen 443 ssl;
include snippets/ssl-app.example.com.conf;
include snippets/ssl-params.conf;
server_name app.example.com;
root /var/www/html;
location / {
# Set proxy headers
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_pass http://app_servers;
}
location ~ /.well-known {
allow all;
}
}
Я настроил letsencrypt и получил сертификат для app.example.com перед настройкой прокси, и теперь у меня возникли проблемы с выяснением, как настроить nginx для проксирования всего на вышестоящие app_servers, за исключением чего-либо в /.well-known, чтобы certbot мог локально обновите сертификаты SSL на сервере, на котором запущен этот балансировщик нагрузки nginx. Любые предложения о том, как перенаправить app.example.com/.well-known/ на локальный путь, который letsencrypt certbot может использовать и успешно использовать во время обновления?
Обновление, гарантирующее, что .well-known существует в / var / www / html (Debian), и установка root в conf позволила certbot обновиться должным образом. Обновлен фрагмент nginx conf, чтобы отразить это.
Установка root на веб-корневой каталог nginx по умолчанию в Debian /var/www/html
где certbot изначально был настроен для указания на хорошо известную папку, проблема решена.
upstream app_servers {
server app-1.example.com;
server app-2.example.com;
}
server {
listen 80;
listen 443 ssl;
include snippets/ssl-app.example.com.conf;
include snippets/ssl-params.conf;
server_name app.example.com;
root /var/www/html;
location / {
# Set proxy headers
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_pass http://app_servers;
}
location ~ /.well-known {
allow all;
}
}