随笔 - 105  文章 - 2 评论 - 10 阅读 - 19万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

问题:开发者工具可以正常打开,正式上线版小程序使用 web-view 组件测试时提示:“无法打开该页面,不支持打开 https://xxxxxx,请在“小程序右上角更多->反馈与投诉”中和开发者反馈。”

解决方法:需要配置业务业务域名,在微信公众平台-开发-开发管理-业务域名。

 

 

 

下载校验文件后,格式为.txt文件。把文件给后端,后端部署服务器,部署完后,可以直接访问该文件。例如:业务域名为https://baidu.com,下载下来的文件名为test.txt,后端部署完成后,可以确保https://baidu.com/test.txt可以访问

转自:https://blog.csdn.net/weixin_69670563/article/details/140043954

 

好了,根据以上明白了:

下载下来的校验文件要放到域名根目录,但是我们的域名根目录已经被代理到了特定服务上,而代理nginx是通过docker搭建的,通过root 的方式也不合适,除了需要挂载本地目录外,主要是因为这个nginx主要是用来转发外网流量到内网的,不参与具体文件代理

最好的方式还是把txt文件上传到内网文件服务器,然后通过nginx转发出内网访问地址

然后配置外网的nginx路由规则:识别 .txt结尾的链接,直接代理到该内网地址

其实问题还是比较棘手,经过一番研究解决了:主要还是问的AI :)

内网文件服务器代理地址如下:http://10.30.30.183:8082/file_server/wxxcx/jNExaFCcIp.txt

外网的nginx配置路由规则:

复制代码
              location  ~* \.txt$ {

                rewrite ^/(.*\.txt)$ /file_server/wxxcx/$1 break;

                proxy_pass http://10.30.30.183:8082;

                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_pass http://10.30.30.183:8082/file_server/wxxcx/,然后nginx重启报错了,问过ai才知道:这种写法 proxy_pass 目标地址‌不能包含URI部分‌(如 http://backend-server/newpath/ 会报错),仅保留协议、域名和端口。

所以多了一步rewrite步骤,把要访问的内网nginx地址给手动加上  /file_server/wxxcx/$1 ($1是.txt文件名比如123.txt),问题完美解决。

规则解析‌

规则语法:
rewrite ^/(.*\.txt)$ /file_server/wxxcx/$1 break;

    1. ‌正则匹配部分‌

      • ^/(.*\.txt)$:匹配以根目录(/)开头且以.txt结尾的路径。
        • ^表示字符串开始,$表示字符串结束。
        • .*匹配任意字符(包括空字符),\.txt匹配.txt后缀。
        • 括号( )将匹配的内容(即文件名部分)捕获到变量$1中。
    2. ‌重写目标路径‌

      • /file_server/wxxcx/$1:将匹配的原始路径(如/test.txt)重写为/file_server/wxxcx/test.txt
        • $1引用正则中捕获的.*\.txt部分(即文件名)。
    3. ‌Flag标志‌

      • break:表示完成当前规则处理后,‌不再执行后续的rewrite指令‌,直接使用重写后的路径继续处理请求(如查找文件或代理)‌12。

 

posted on   06  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示