使用nginx反向代理在微信小程序中使用http请求

使用nginx反向代理在微信小程序中使用http请求

由于微信小程序对第三API的请求做了限制官方说明文档,导致我们无法访问非https的请求,然而我们在开发小程序过程中所请求的第三方接口不一定都是https的请求,那我们要怎么做才能在微信小程序开发中使用http形式的接口呢。废话不多说,直接看效果。

使用代理之前

使用代理之后

完成上面的操作我们需要做的准备工作

  1. 首先我们需要拥有一个自己的域名(如果没有直接在阿里云,腾讯云,百度云等直接注冊一个)

  2. 然后我们需要进行域名解析,这里我选的是阿里云解析 ,其他解析网站操作也类似 。
    如下图所示则解析成功!

  3. 然后我们需要去阿里云申请一个免费的SSL安全证书,证书申请地址使用nginx反向代理在微信小程序中使用http请求_第1张图片要注意:证书的签发需要实名认证,下图表示证书签发成功使用nginx反向代理在微信小程序中使用http请求_第2张图片
    然后我们选择证书的下载,点击后会弹出如下页面使用nginx反向代理在微信小程序中使用http请求_第3张图片我们选择Nginx下载,下载后我们会得到两个文件.pem和.key的文件。

  4. 我们需要在宝塔给域名绑定证书,我们直接进入宝塔,然后选择网页版使用nginx反向代理在微信小程序中使用http请求_第4张图片进入后我们来到控制面板,点击网址再点击设置在这里插入图片描述然后我们再点击SSL,依次填入相应的内容使用nginx反向代理在微信小程序中使用http请求_第5张图片

    配置成功后的页面为,此时我们需要开启右上角的强制https使用nginx反向代理在微信小程序中使用http请求_第6张图片

  5. 接下来我们就可以开始配置Nginx进行反向代理了!

    i. 首先我们打开Nginx安装目录然后找到conf文件夹,然后我们在里面新建一个名为cert(当然名字你可 以自己取,但必须是英文)文件夹,然后我们将下载的.key和.pem文件放入其中
    ii. 然后我们打开改目录下的nginx.conf 文件在里面加入如下代码

    nginx.conf中加入的配置为
    
    
      server {
      	listen 443 ssl;   #SSL协议访问端口号为443。此处如未添加ssl,可能会造成Nginx无法启动。
      	server_name localhost;  #将localhost修改为您证书绑定的域名,例如:www.example.com。
      	root html;
      	index index.html index.htm
         #以下属性中以ssl开头的属性代表与证书配置有关,其他属性请根据自己的需要进行配置。
      	ssl_certificate cert/name.pem;   #name.pem替换成您证书的文件名。
      	ssl_certificate_key cert/name.key;   #name.key替换成您证书的密钥文件名。
      	ssl_session_timeout 5m;
      	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;  #使用此加密套件。
      	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   #使用该协议进行配置。
      	ssl_prefer_server_ciphers on;   
            location / {
                  proxy_store off;
      			proxy_redirect off;
      			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      			proxy_set_header X-Real-IP $remote_addr;
      			proxy_set_header Referer 'no-referrer-when-downgrade';
      			proxy_set_header User-Agent 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36';
      			proxy_connect_timeout 600;
      			proxy_read_timeout 600;
      			proxy_send_timeout 600;
                  proxy_pass  你想代理的接口地址(例如:http://v3.wufazhuce.com:8000/api/);   
            }
      }  
    

    完成以上流程后再以管理员身份运行cmd控制台,然后再开启Nginx服务,最后我们再打开我们的微信开发者工具,我们会惊奇的发现我们原先无法使用的http形式的API在代理后有了数据!(注:代理后我们在微信小程序中求情的API地址应该为我们自己的证书绑定的后的域名地址)

总结

这只是一直曲线救国的方式,只适合与个人的开发。如果需要长期使用则还是需要搭载自己的服务器,以上皆为个人开发中的一些经验总结,希望对你有帮助。另外如果有什么错误欢迎各位斧正。最后蟹蟹大家的支持,冲冲冲~

你可能感兴趣的:(微信小程序,API请求,nginx反向代理,nginx,小程序,http,https)