微信小程序业务域名的校验文件配置

前言

我之前已经在nginx做了配置,浏览器url中访问/将直接访问到我的一个node服务中去,但是检验文件要求放到域名的根目录下(即网站根目录,如/usr/share/nginx/html/),要怎么解决呢?

现在的架构是:

  • 用户访问 https://你的域名/ → Nginx 反向代理到你的 Node.js 服务(比如 http://127.0.0.1:3000
  • 现在需要上传一个 校验文件KZurowFpA.txt注意下载下来的文件名字不能改),用于微信小程序验证你对域名的控制权
  • 但问题是:所有 / 路径的请求都被代理到 Node 服务了,Nginx 不会直接返回静态文件

✅ 核心问题

你想让 https://你的域名/KZurowFpA.txt 这个 URL 不经过 Node 服务,而是由 Nginx 直接返回一个本地文件。


✅ 解决方案:在 Nginx 中为校验文件添加特殊 location 规则

你只需要在 Nginx 配置中,添加一个更具体的 location ,优先匹配校验文件的路径,让 Nginx 直接返回它,不走代理


✅ 步骤一:把校验文件放到某个目录

比如:/usr/share/nginx/html/KZurowFpA.txt

确保权限正确:

bash 复制代码
sudo chown -R www-data:www-data /usr/share/nginx/html/KZurowFpA.txt
sudo chmod -R 644 /usr/share/nginx/html/KZurowFpA.txt

✅ 步骤二:修改 Nginx 配置,添加 location 规则

在你的 server 块中,location / 之前 添加一个专门匹配校验文件的规则:

ini 复制代码
server {
    listen 80;
    listen 443 ssl;
    server_name 你的域名;

    # SSL 配置...
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/privkey.pem;

    # 精确匹配某个校验文件
    location = /KZurowFpA.txt {
        root /usr/share/nginx/html/verify;
        add_header Content-Type text/plain;
    }

    # 原来的 Node 服务代理(必须放在后面)
    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

✅ 关键点说明

技巧 说明
location = /file.txt 精确匹配,优先级最高
location ~ ^/... 正则匹配,可以匹配多个文件
把静态文件规则写在 location / 之前 Nginx 会优先匹配更具体的规则

✅ 测试是否成功

  1. 重启 Nginx:

    sudo nginx -t && sudo systemctl reload nginx

  2. 用浏览器访问:

arduino 复制代码
http://你的域名/KZurowFpA.txt

你应该能看到文件内容,而不是 Node 服务的响应。

✅ 总结

场景 配置方式
单个校验文件(如 KZurowFpA.txt location = /KZurowFpA.txt { alias /path; }
多个校验文件 `location ~ ^/(file1
Node 服务代理 location / { proxy_pass ... }(放最后)

✅ 这样配置后,Nginx 会:

  • 遇到 /KZurowFpA.txt → 直接返回文件
  • 遇到其他所有请求 → 转发给 Node 服务

完美兼顾 校验文件Node 服务代理

相关推荐
柳鲲鹏4 小时前
未成功:使用 Nginx 搭建代理服务器(正向代理 HTTPS 网站)
运维·nginx
大得3698 小时前
nginx结合lua做转发,负载均衡
nginx·junit·lua
你的电影很有趣9 小时前
lesson47:Linux常用软件使用指南:远程连接、远程拷贝、Vim与Nginx
linux·nginx·vim
sjd_积跬步至千里13 小时前
Nginx-正则匹配
nginx
yunyi13 小时前
使用acme.sh来实现自动化申请和续订TLS证书
linux·nginx·docker
namehu1 天前
一次因企微域名限制引发的“骚操作”:Nginx 与 FRP 的踩坑排查实录
linux·nginx
掉鱼的猫2 天前
老码农教你 Solon Web Context-Path 的两种配置
java·nginx·tomcat
带刺的坐椅2 天前
老码农教你 Solon Web Context-Path 的两种配置方式
java·nginx·tomcat·web·solon
2501_920047032 天前
nginx-限速-限制并发连接数-限制请求数
运维·nginx