【问题标题】:nginx server_name regex capture not getting substituted in ssl_certificatenginx server_name 正则表达式捕获未在 ssl_certificate 中被替换
【发布时间】:2018-07-18 07:03:11
【问题描述】:

我正在尝试以下方法:

server_name ~^domain\.(?<tld>.*)$;
ssl_certificate /etc/ssl/private/ssl-chain-domain-$tld.pem;

我得到:

[emerg] 22812#22812: BIO_new_file("/etc/ssl/private/ssl-chain-domain-$tld.pem") 失败(SSL: error:02001002:system library:fopen:No such file or directory :fopen('/etc/ssl/private/ssl-chain-domain-$tld.pem','r') error:2006D080:BIOroutines:BIO_new_file:no such file

显然,没有发生 var 替换。 $1 也不起作用。

【问题讨论】:

    标签: regex nginx config


    【解决方案1】:

    Nginx docs:

    变量不应用作模板宏。在处理每个请求期间,在运行时评估变量

    换句话说:Nginx 不会为每个请求单独加载证书,因此不会使用变量。您需要明确提供特定的证书路径。

    另外,这个问题可能属于Serverfault(但我不知道如何移动它)。

    【讨论】:

    猜你喜欢
    • 2016-04-28
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 2016-10-21
    • 1970-01-01
    • 2019-01-27
    • 1970-01-01
    • 2013-06-27
    相关资源
    最近更新 更多