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

前言

我之前已经在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 服务代理

相关推荐
Evan芙4 小时前
Nginx 平滑升级
数据库·nginx·ubuntu
Evan芙10 小时前
Nginx 安装教程(附Nginx编译安装脚本)
windows·nginx·postgresql
invicinble11 小时前
nginx的基本认识
运维·nginx
爆肝疯学大模型11 小时前
http转https,免费快速申请证书并实现nginx配置
nginx·http·https
qinyia11 小时前
通过 Wisdom SSH AI 助手部署和配置 Nginx Web 服务器
人工智能·nginx·ssh
嘻哈baby11 小时前
Nginx反向代理与负载均衡实战指南
运维·nginx·负载均衡
二哈喇子!1 天前
openFuyao 容器平台快速入门:Nginx 应用部署全流程实操
运维·nginx·openfuyao
J2虾虾1 天前
上传文件出现“ 413 Request Entity Too Large“错误
nginx
枫叶梨花1 天前
Nginx HTTPS代理大文件加载失败的排查与解决方案
nginx
albert-einstein1 天前
Nginx越界读取缓存漏洞CVE-2017-7529(参考peiqi文库以及gpt)
gpt·nginx·缓存