最近在看一些理论,所以请教一下特别小白的问题。
如果 CDN 的回源地址是一个对象存储,如 aws s3 这种。
那么如果一个用户请求中没有想要的静态地址的话,这个请求会转到这个对象存储吗?
后面如果有一个应用防火墙,那回源的动作是不是应该由应用防火墙来执行啊?
再就是,如果静态请求都可以找对象存储,那我前端要 web server 的作用是什么?
1
yuzo555 2021-06-14 16:33:28 +08:00
第一个问题没太理解,不过:
回源地址是对象存储,那么除非特殊分源配置,用户对这个域名的所有请求都会到对象存储,如果对象存储文件不存在,那么就会报错 404 (也可能对象存储配置了报错跳转策略等)。 CDN 本身如果配置了回源规则或者一些边缘规则,可以设置一些特定请求不回源。 第二个问题,如果你的网站时纯静态站,完全可以只用对象存储,不用 web 服务器。 |
2
lonelygod365 OP @yuzo555 感谢
如果网站是动静结合的,那么我可不可以理解为一部分静态请求可以去到对象存储,而对象存储是不是可以再次重定向某些请求到 web 服务器,然后再由 web 服务器执行? 而动态请求是不是都必须经过 web 服务器解析,然后转给后面的应用服务器? 我的理解正确吗 |
3
yuzo555 2021-06-14 16:46:04 +08:00
你这种情况最佳解决方案是动静分离,单独拿个域名出来以对象存储做源站放静态资源。
你一定要用同一个域名的话,可以找一些可以 [根据后缀、根据目录回不同的源] 的 CDN 来做。 某些对象存储是有一些 302 能力,但这样属实折腾,效率低。 |
4
lonelygod365 OP @yuzo555 谢谢
那么动静分离,我可以理解为,静态网站托管给对象存储。 不过动态请求依旧是还要 apache 转交给后面的 tomcat 吗? 这里我确实有点蒙,静态都托管了,那处理静态的 apache 应该要干啥 |
5
Jirajine 2021-06-14 17:16:10 +08:00 via Android
@lonelygod365 api 服务也得用 web 服务器啊,https 、鉴权、过滤、日志、cgi 、负载均衡等等。
你一直用 Apache 可能没感觉,但一些新型的 web 服务器有很多强大的功能,像是边缘路由、oauthkeeper 等。 |