443 ssl;
server_name ~^(www\.)?(?<domain>.+)$;
ssl_certificate /etc/nginx/certs/users/$domain/bundle.crt;
ssl_certificate_key /etc/nginx/certs/users/$domain/private.key;
access_log /var/log/nginx/quiz-domains_access.log combined;
error_log /var/log/nginx/quiz-domains_error.log;
include /etc/nginx/snippets/main.conf;
}
в логи пишет
4 cannot load certificate "/etc/nginx/certs/users//bundle.crt"
т.е в переменной $domain - пусто. можете подсказать как исправить?
суть в чем, на сервер направлено очень много пользовательских доменов, хочу одним конфигурационным файлом обрабатывать пользовательские домены. сертификат должен браться из /etc/nginx/certs/users/DOMAIN_NAME/
Какая версия nginx?
nginx version: nginx/1.18.0 (Ubuntu)
Какая версия опенссл?
пробел после ~
не совсем понял, на 3 строчке конфига нет пробела
в конфиге который вы вставили сюда между ~ и ^ нет пробела
если добавлю пробел будет ошибка empty regex in server name "~" in
Он ерунду говорит)
попробуйте тогда в кавычки взять двойные
пробел убрать, поместить regex в кавычки
тут так написано: http://nginx.org/ru/docs/http/server_names.html
Тогда уж лучше ${domain}
попробовал server_name "~^(www\.)?(?<domain>.+)$"; не выходит
а если ~*^(www\.)?(?<domain>.+)$";
nginx: [emerg] pcre_compile() failed: nothing to repeat in "*^(www\.)?(?<domain>.+)$"" at "*^(www\.)?(?<domain>.+)$""
я так понял кавычку в начале надо?
я звёздочку добавил
Обсуждают сегодня