有什么把 ASP.NET Core MVC 写的企业官网所有页面渲染成静态的吗?最近经常有 CC 攻击把 CPU 占满。或者 Nginx 配什么参数能把所有页面都缓存下来?(内容非常少变动,没有用户可以提交的内容)

2023-01-15 21:18:32 +08:00
 edis0n0
2056 次点击
所在节点    程序员
24 条回复
edis0n0
2023-01-15 21:19:26 +08:00
没有 CDN 和 WAF ,传统企业这些服务预算肯定批不下来,不用提了
foolishnobody
2023-01-15 21:21:53 +08:00
前面加个 cf 试试
idragonet
2023-01-15 21:38:04 +08:00
CDN 也有免费的。
edis0n0
2023-01-15 21:57:12 +08:00
@foolishnobody #2
@idragonet #3 国内的站
learningman
2023-01-15 22:05:38 +08:00
Nginx Proxy Cache ,可以存硬盘上
learningman
2023-01-15 22:07:48 +08:00
或者如果真的确信不会变动,wget -r 把所有页面下载下来,nginx 直接静态提供
idragonet
2023-01-15 22:13:25 +08:00
@edis0n0 国内也有免费 CDN
edis0n0
2023-01-15 22:24:18 +08:00
@idragonet #7 企业站 免费的领导肯定不让用
zhchyu999
2023-01-15 22:31:36 +08:00
最好 CDN 解决,其次 Nginx ,通过限制 IP 请求次数,缓存似乎不治本,也不一定治标
ASP.NET Core MVC 应该有一个拦截器,把渲染过后的 HTML 缓存起来
hgc81538
2023-01-15 22:50:49 +08:00
thinkershare
2023-01-15 23:00:22 +08:00
@edis0n0 最简单情况是使用输出缓存, 不过这个玩意非常新,需要 ASP.NET Core 7.0 的支持
ryd994
2023-01-16 01:53:52 +08:00
用好 proxy_cache 和 proxy_store ,可以实现你的需求。proxy_cache_key 可能需要一些调整优化。
限制请求频率是后话,因为如果不做好缓存,限制请求频率很容易误伤正常用户。
kkk9
2023-01-16 02:21:25 +08:00
ngx_lua:先载出一个纯 js 验证页,简单算法带上值验证,正确跳转 ASP.NET ,不正确(没有的)直接拉黑 IP 。拉黑机制自行斟酌,顺便可以过滤不正常的 UA
edis0n0
2023-01-16 02:28:42 +08:00
@kkk9 #13 企业官网是要考虑搜索引擎 SEO 的,还要维护一个搜索引擎 IP 白名单,国内有的搜索引擎好像没给爬虫 IP 段
dayeye2006199
2023-01-16 04:09:09 +08:00
免费的不让用,收费的没预算。。左转换领导
netnr
2023-01-16 08:48:29 +08:00
#12 提到的磁盘缓存感觉是最适合的方案

个人目前用这种方式做 unpkg 白名单镜像
lslqtz
2023-01-16 09:31:01 +08:00
@edis0n0 付费 DNS 通常可以解决这个问题, 其次是 UA 爬虫判断和 IP 段.
lslqtz
2023-01-16 09:31:29 +08:00
然后国内的付费 CDN, 5 秒盾部分也有, 不出意外也是有爬虫白名单的.
quan01994
2023-01-16 09:44:08 +08:00
https://learn.microsoft.com/zh-cn/aspnet/core/performance/caching/output?view=aspnetcore-7.0

你可以看看微软官方文档,这个功能应该可以解决你的问题 。
ragnaroks
2023-01-16 14:19:34 +08:00
前面套 CF ,其次控制器上加 [ResponseCache]

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

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

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

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

© 2021 V2EX