记录一次通过代理形式访问公司saas服务接口

举报
郁唯xiaolin 发表于 2019/07/05 08:26:53 2019/07/05
【摘要】 一、简介 因为公司客户很多使用微信小程序,微信小程序调用saas的api接口时,需要将小程序所调用的域名都经过验证,而且一个域名只允许验证二十次,所以,需要客户自己通过代理请求saas服务,然后在代理那边配置一个域名,配置小程序域名的验证,这样就能解决域名验证被限制二十次的问题。 我这里使用的代理是nginx和haproxy这两款软件,经过测试80端口都能正常,http的话,暂时...

一、简介

    因为公司客户很多使用微信小程序,微信小程序调用saas的api接口时,需要将小程序所调用的域名都经过验证,而且一个域名只允许验证二十次,所以,需要客户自己通过代理请求saas服务,然后在代理那边配置一个域名,配置小程序域名的验证,这样就能解决域名验证被限制二十次的问题。

    我这里使用的代理是nginx和haproxy这两款软件,经过测试80端口都能正常,http的话,暂时没有配置成功,正查找原因。

二、代理配置

    1、nginx相关配置

        假如请求的接口地址是api.haha.com(支持http和https两种)

server {
    	listen       80;##端口,如果不想基于域名,请使用不同的端口进行负载
    	server_name  api.wawa.com;#如果基于端口进行转发,请根据自己业务需要的域名进行修改此处
    	location / {
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
            proxy_connect_timeout 300s;
            proxy_send_timeout 300s;
            proxy_read_timeout 300s;
       	    proxy_pass https://api.haha.com/;##此处可以写http方式也可以写为https方式请求接口
       	}
   }

        以上内容,可以写入一个独立配置文件,也可以写到Nginx的配置文件中,但是需要注意,在测试过程中发现,如果此Nginx下有多个域名负载均衡,可能正向代理这个会与其他正向代理混淆,导致不能正确正向代理,推荐不管是直接写入nginx的配置文件nginx.conf,还是通过include方式引用,尽量让这段代码尽量放到靠前的位置,让此段代码能载入比其他server块早一些。

                                还有一个问题,如果此处配置https的话,经过的是api.wawa.com,如果nginx请求后端的https的话,会不会出现问题,感觉不会出现问题,nginx代理请求了真实的接口地址,而将请求拿到之后再将请求发给客户端。


                2、haproxy相关配置

                        这个只使用了http方式,七层负载

frontend main
    bind *:80
    mode http
    option httplog
    option forwardfor                                                                     
    acl host_www hdr_reg(host) -i api.wawa.com
    use_backend apitest if host_www
    
backend apitest
    mode http
    balance roundrobin
    server signtest1 api.haha.com

      这种形式也做了测试,请求api.wawa.com接口的时候,能正常的请求各个接口,与使用api.haha.com无差别。

       但是不知道为什么配置443端口的时候,无论如何都不能正常访问呢?后续再坐下测试



三、臆想的第三种Cname的方式

    好像Cname也能做,不过不知道效果,有空试一下

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。