使用非80端口部署微信公众号后台

使用workers解决 微信公众号 请输入合法的URL问题

Posted by 王帅 on July 22, 2022

引言

最近给家里换了软路由装上了PVE,于是又重拾了之前的公众号.

在修改微信公众号服务器后台URL地址时,微信提示:请输入合法的URL

这里之前用的是ngrokfrp的内网穿透方案;但我的VPS已经到期了,暂时也没有新入主机的需求

最终,在网上找到了两个解决方法

解决方案

1.免费内网穿透服务

根据网站提示配置frpc.ini,使用以下docker命令启动frpc客户端

docker run --restart=always --network host -d -v /mnt/docker/frp/frpc.ini:/etc/frp/frpc.ini --name frpc snowdreamtech/frpc

再将自己原本的域名CNAME指向frp.freefrp.net即可

如果你只是临时debug调试,且使用visual studio作为开发工具,那可以使用conveyor的服务,安装插件后F5调试即可使用

2.使用cloudflare提供的免费serverless服务:cloudflare workers

上面的方法是之前就了解到的方案,在知道reflare之后才算发现一条康庄大道

reflare是一个反向代理库,既然是反向代理;那就可以解决端口映射问题

使用Cloudflare Workers®需要将域名托管到cloudflare上才行

  • 参照reflare提供的安装步骤引用reflare
  • 修改index.ts中的配置为自己的域名和端口
reflare.push({
    path: '/*',
    upstream: {
      domain: 'wechat.aa.com',      
      port: 7788,
      protocol: 'https',
    }
  });
  • 执行npx wrangler publish命令发布worker

如果需要修改子域名,可以调整wrangler.toml中的name

  • 在workers后台中添加自定义触发路由

注意,这里要写/*,它表示处理所有location

cloudflare_workers_router

  • 在DNS设置中添加自定义触发路由到你的worker域名的CNAME记录

注意,这里要点亮橙色云朵,因为直接用xxx.workers.dev访问会有522 Connection timed out error

cname

  • 访问你设置的dns记录即可看到效果

参考资料