侧边栏壁纸
博主头像
慧棱镜 All In One 服务平台 博主等级

行动起来,活在当下

  • 累计撰写 14 篇文章
  • 累计创建 41 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

解决Nginx开启反向代理后签发SSL证书时无法进行域名验证的问题

创始者
2024-09-02 / 0 评论 / 0 点赞 / 23 阅读 / 0 字
广告 广告

问题描述:

在配置 Nginx 服务器时,我需要处理来自 .well-known 目录的请求,以便直接从服务器上的文件系统中读取这些文件并返回给客户端,而不经过反向代理。具体来说,我想将 .well-known 目录下的所有请求(如 SSL 证书验证文件)直接映射到服务器上的某个目录,并且在这个过程中不经过反向代理。然而,我尝试了以下配置,结果发现请求仍然通过了反向代理,而没有直接从文件系统中读取文件。

要确保 .well-known 目录的请求不会走反向代理,可能是因为反向代理的配置文件中的某些规则覆盖了你的 .well-known 目录的配置。你可以尝试将 .well-known 的配置放在反向代理配置之前,或者明确指定反向代理不处理 .well-known 目录。

    ....
    #一键申请SSL证书验证目录相关设置
    location ^~ /.well-known/ {
        alias /<项目根路径>/.well-known/;
        try_files $uri =404;
        # return 200 "ok";
    }
  	#引用反向代理规则,注释后配置的反向代理将无效
  	include /www/server/panel/vhost/nginx/proxy/*.conf;
    ...

解释:

  • ^~ 指令意味着如果路径匹配 /.well-known/,那么不再继续检查其他正则表达式位置,也就是说,.well-known 目录的请求将不会被其他位置(包括反向代理规则)匹配到。

  • alias /<项目根路径>/.well-known/; 将该目录映射到真实的文件系统路径。

  • try_files $uri =404; 尝试读取文件,如果文件不存在则返回404错误。

确保这个配置段放在 include 指令之前,并且清除 Nginx 的缓存(如果有)后重启 Nginx:

nginx -s reload

这样,.well-known 目录下的请求应该会直接从文件系统中读取返回,而不会再通过反向代理。

0
广告 广告

评论区