Для приложения мне нужна следующая строка в моем location
блок:
rewrite ".*" /server.php break;
Это приводит к тому, что certbot не может проверить домен. Чтобы установить сертификат SSL, я прокомментировал эту строку, и certbot работал нормально. Теперь проблема в том, что обновление автоматизировано и не удастся, если я раскомментирую строку.
Есть ли способ создать специальный location
только для проверки Let's Encript? Если да, то?
Вот полный блок с прокомментированной проблемной строкой:
location / {
try_files $uri $uri/ =404;
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
include fastcgi_params;
fastcgi_param USE_INSTANCE 'd1';
fastcgi_param SCRIPT_FILENAME $request_filename;
#rewrite ".*" /server.php break;
}
Если вам интересно, почему я не ограничиваю шаблон соответствия ~ \.php$
, это потому, что конфиг принадлежит моему api.host.com
конечная точка, которая будет получать только те запросы, которые необходимо направить в сценарий PHP.
Я создал отдельный location
блок для certbot.
location /.well-known/acme-challenge/ {
root /var/www;
try_files $uri =404;
}
(Обратите внимание, что я использую один и тот же корень документа для каждого виртуального хоста, который находится за пределами обычного корня документа, поэтому certbot никогда ничего не записывает в фактические каталоги веб-сайтов.)