工具 -- nginx实现cors-anywhere
最近发现博客评论使用的gittalk授权时,一直报403错误,排查了下,主要原因是gittalk授权过程需要调用github的接口获取对应的信息,但由于跨域存在需要使用一个CORS地址进行转接,默认使用的是https://cors-anywhere.herokuapp.com/https://github.com/login/oauth/access_token
是cors-anywhere所提供的示例服务,由于访问量大,cors-anywhere这个地址做出了响应的限制。找到了原因,稳定的解决方案就是自建,恰好自己有域名以及服务器,因此开放出来给其他人使用,希望帮助到你。
Nginx配置
CORS本质上是请求一个地址能够接受跨域,也就是header需要有Access-Control-Allow-Origin "*";
,但往往大多数地址为了安全不支持跨域,因此诞生了CORS Proxy,也就是跨域地址 + 反向代理。
针对Nginx的配置如下,大概思路是用户访问https://cors.mrdear.cn/https://github.com/login/oauth/access_token
地址时,nginx需要解析出真正的地址https://github.com/login/oauth/access_token
,然后使用proxy_pass
给代理过去。
1 | location ~* "/(.*):/(.*)" { |
分享
自己搭建一个其实很简单,不过如果闲麻烦的话,可以使用我自建的服务,域名续费了10多年,服务器也一直有,只要不被封,会一直提供下去。
1 | https://cors.mrdear.cn/想要访问的地址 |
- 版权声明: 感谢您的阅读,本文由屈定's Blog版权所有。如若转载,请注明出处。
- 文章标题: 工具 -- nginx实现cors-anywhere
- 文章链接: https://mrdear.cn/posts/tools-cors-anywhere.html