记录一次通过代理形式访问公司saas服务接口
【摘要】 一、简介 因为公司客户很多使用微信小程序,微信小程序调用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)