![nginx server_name 正则表达式在精确匹配之前](https://linux22.com/image/705799/nginx%20server_name%20%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E5%9C%A8%E7%B2%BE%E7%A1%AE%E5%8C%B9%E9%85%8D%E4%B9%8B%E5%89%8D.png)
我想要为任何被请求的 server_name 全局实现一个 LetsEncrypt acme-challenge 位置声明。
因此我编写了以下服务器块:
server {
server_name ~^(.+)$;
listen 80;
location ^~ /.well-known/acme-challenge/ {
default_type "text/plain";
root /etc/nginx/ssl/le;
allow all;
}
}
据我所知,我明白如果服务器块完全匹配,则上面的服务器块将不会被调用。
有没有什么技巧可以在不接触域的实际服务器块的情况下实现它?
我甚至对 if 语句也满意