请问源站与 web 服务器的问题

2021-06-14 16:23:16 +08:00
 lonelygod365

最近在看一些理论,所以请教一下特别小白的问题。

如果 CDN 的回源地址是一个对象存储,如 aws s3 这种。
那么如果一个用户请求中没有想要的静态地址的话,这个请求会转到这个对象存储吗?

后面如果有一个应用防火墙,那回源的动作是不是应该由应用防火墙来执行啊?

再就是,如果静态请求都可以找对象存储,那我前端要 web server 的作用是什么?

634 次点击
所在节点    问与答
5 条回复
yuzo555
2021-06-14 16:33:28 +08:00
第一个问题没太理解,不过:
回源地址是对象存储,那么除非特殊分源配置,用户对这个域名的所有请求都会到对象存储,如果对象存储文件不存在,那么就会报错 404 (也可能对象存储配置了报错跳转策略等)。

CDN 本身如果配置了回源规则或者一些边缘规则,可以设置一些特定请求不回源。

第二个问题,如果你的网站时纯静态站,完全可以只用对象存储,不用 web 服务器。
lonelygod365
2021-06-14 16:36:30 +08:00
@yuzo555 感谢

如果网站是动静结合的,那么我可不可以理解为一部分静态请求可以去到对象存储,而对象存储是不是可以再次重定向某些请求到 web 服务器,然后再由 web 服务器执行?

而动态请求是不是都必须经过 web 服务器解析,然后转给后面的应用服务器?

我的理解正确吗
yuzo555
2021-06-14 16:46:04 +08:00
你这种情况最佳解决方案是动静分离,单独拿个域名出来以对象存储做源站放静态资源。

你一定要用同一个域名的话,可以找一些可以 [根据后缀、根据目录回不同的源] 的 CDN 来做。

某些对象存储是有一些 302 能力,但这样属实折腾,效率低。
lonelygod365
2021-06-14 17:04:12 +08:00
@yuzo555 谢谢

那么动静分离,我可以理解为,静态网站托管给对象存储。

不过动态请求依旧是还要 apache 转交给后面的 tomcat 吗?

这里我确实有点蒙,静态都托管了,那处理静态的 apache 应该要干啥
Jirajine
2021-06-14 17:16:10 +08:00
@lonelygod365 api 服务也得用 web 服务器啊,https 、鉴权、过滤、日志、cgi 、负载均衡等等。
你一直用 Apache 可能没感觉,但一些新型的 web 服务器有很多强大的功能,像是边缘路由、oauthkeeper 等。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/783318

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX