专栏首页宣言(Siam)博客微信公众号应用开发流程 免费内网穿透映射本地,实现调试

微信公众号应用开发流程 免费内网穿透映射本地,实现调试

写在前面

众所周知,我们微信开发过程会遇到以下两个场景:

  • 用户扫码、点击菜单、发送消息 等,【微信】会转发到【我们在微信后台配置的域名】,实现逻辑处理,推送消息给用户 或者 做相应的逻辑处理
  • 公众号页面,需要登录获取openid,跳转的域名需要白名单。不利于本地调试

内网映射

我们可以使用一系列内网穿透映射的工具,可以在公网访问本地开放的程序,(无论是自己搭建还是使用其他产品 都适用)

如果是自己搭建或者使用付费的内网穿透工具,那么隧道域名将可以固定,我们在以下两个地方配置为获取到的内网域名,微信将会把所有请求 转发到 我们本地的这个穿透域名上,就可以实时调试了

  • 获取openid的授权域名
  • 微信公众号接管服务器域名

免费内网穿透的问题

这里在使用一些免费内网穿透产品遇到的问题,并不是所有免费内网穿透都有此问题,记录此篇文章是增加一种程序思维。解决问题的思路。

我使用的工具,分配的免费域名,会不定期变动,如第一次分配为siamA.xxxx.com 可能一个小时后会变成siamB.xxxx.com 这个时候就不适用我们上面说的这种,直接配置穿透域名在微信后台 因为需要反复修改,比较麻烦

nginx 线上域名

我这里的做法是:提前把业务以后上线的域名准备好,部署在服务器,通过转发 再转发到穿透域名。

如果内网穿透域名变化,只需要在服务器修改一次内网域名(此步骤可以通过脚本,实现自动切换 非本篇文章思路重点内容) 不需要反复去登录微信后台修改授权域名。(特别是登录微信公众号需要公司领导扫码的情况)

以下为nginx转发配置文件

location /
{
    expires 12h;
    if ($request_uri ~* "(php|jsp|cgi|asp|aspx)")
    {
         expires 0;
    }
    proxy_pass http://siamC.xxxx.com;
    proxy_set_header Host siamC.xxxx.com;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;

    #持久化连接相关配置
    #proxy_connect_timeout 30s;
    #proxy_read_timeout 86400s;
    #proxy_send_timeout 30s;
    #proxy_http_version 1.1;
    #proxy_set_header Upgrade $http_upgrade;
    #proxy_set_header Connection "upgrade";
    add_header X-Cache $upstream_cache_status;

    #Set Nginx Cache

        add_header Cache-Control no-cache;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Layui模块化,改造传统jquery扩展为layui模块

    在我使用jquery扩展,拖拽组件的时候,因为使用的布局模板有些冲突,导致无法使用扩展,所以才会解决之后写下这篇文章。

    宣言言言
  • Mysql索引降维 优化查询 提高效率

    从以上例子中,我们可以思考并归纳。能提升效率的核心是:在一开始就尽可能地筛选出准确的数据。

    宣言言言
  • session在浏览器关闭时进行何处理?以及回收机制

    Session会话机制被广泛应用在JSP、ASP、PHP等语言中。一般用来储存登陆状态或者其他的一些需要验证权限的状态。 以下类似代码在每个系统里应该都会存在

    宣言言言
  • CDN网络加速原理

    CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最...

    程序员养成日记
  • Codis Proxy初始化篇

    这篇文章会重点讲述Codis Proxy的初始化,即启动的过程,其实也不完全是Codis Proxy的初始化,应该说是Codis面向用户请求链路的初始化,即经过...

    心平气和
  • 从零开始一起学习SLAM | 为什么要学SLAM?

    在《零基础小白,如何入门计算机视觉?》中我提到过,计算机视觉的研究目前主要分为两大方向:基于学习的方法和基于几何的方法。其中基于学习的方法最火的就是深度学习,而...

    用户1150922
  • 如何做网站优化(SEO优化)

    信息化进入到如今,网站已经成为企业所不可或缺的必要配置,更注重企业信息化建设的企业,早已经成立信息部门。不仅仅如此,世界最大的网民国家——中国, 孕育最大的资源...

    数据通20847430
  • 使用React.Suspense显示loading效果

    它必须返回一个 Promise,该 Promise 需要 resolve 一个 defalut export 的 React 组件。

    Qiang
  • Direct3D 11 Tutorial 2: Rendering a Triangle_Direct3D 11 教程2:渲染一个三角形

    在之前的教程中,我们建立了一个最小的Direct3D 11的应用程序,它用来在窗口上输出一个单一颜色。在本次教程中,我们将扩展这个应用程序,在屏幕上渲染出一个单...

    Zoctopus
  • 本周AI热点回顾:北大给出新冠疫情数据可视化分析、姚班“斩获”AAAI 2020最佳学生论文

    此份报告首先从已有数据的可视化来展示疫情传播特点,然后通过建立传染病动力学模型,评估疫情防控措施,提出建议并预警,同时预测疫情疾病走势,给疫情防控决策和大众行为...

    用户1386409

扫码关注云+社区

领取腾讯云代金券