url跳转遇到的问题


​ 这两天开发有一个需求:请求一个前端静态页面转发到后端服务上面,据说阿里云oss搭建cdn可以实现这个功能,以前都是自己做一个nginx proxy_pass 转发过去,静态页面好做,转发url阿里云上面也有参考文档,那就尝试做一下。

需求:访问前端静态地址http://ts.xy.com 调用http://test.ap.abc.com的服务端口。

具体如下:

rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://test.ap.abc.com ;

结果:失败,可能配置的有问题。没转发出去,最终在服务器上面搭建nginx站点做代理转发,在此记录一下调试过程。

定好业务用途开始做oss bucket,仅仅做测试就不用考虑数据冗余安全方面的事情,定好名称和公共读权限以后下一步就完事。如下:

建好bucket以后浏览一下会默认生成url类似oss-cn-beijing.aliyuncs.com,可以内网传说文件省流量,外网传送是需要流量计费的。

数据管理-静态页面里面设置默认首页index.html和默认404页面,404报错时候会自动跳转到首页。

下一步bueket 配置-域名管理,是否需要绑定域名,系统自动给的域名因为安全问题,访问的页面都是下载页面没浏览的,访问首页会是下载到index.html文件。绑定自定义域名以后应该能预览网站页面。绑定自己网站以后会自动给一个cname值,在域名上面做解析生效就可以访问站点了,做cdn需要再cdn那边源站绑定到oss的域名后面不做特殊优化基本上默认下一步就可以,最后做cname记录解析生效即可,至此静态网站http://ts.xy.com做好。

接下来做转发:

rewrite ^/api/(.*)$ /$1 break; #重写
proxy_pass http://test.ap.abc.com ;

数据安全–跨域设置:首先oss做跨域设置,最初允许headers针对域名做了设置,后面一直没成功索性设置*。

接下来针对cdn做跨域设置和配置headers

缓存配置–节点http响应头设置:

缓存配置–访问url改写:

根据阿里云文档:

https://help.aliyun.com/zh/cdn/user-guide/create-an-access-url-rewrite-rule

做了一下配置

跳转访问url配置:

最终提示:

MethodNotAllowed

The specified method is not allowed against this resource

问题原因:使用了OSS不支持的方法来请求访问资源。

解决方案:请使用API概览中支持的请求方式进行重试。

如果用302Redirect转发倒是可以跳转到 test.ap.abc.com,单纯跳转到url倒是可以实现,具体业务也是出错。于是乎烂尾工程,最终nginx搭建站点跳转访问业务侧。


文章作者: 云上的小雨滴
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 云上的小雨滴 !
评论
  目录