ak1ra's Lab


Channel's geo and language: not specified, not specified
Category: not specified



Channel's geo and language
not specified, not specified
Category
not specified
Statistics
Posts filter


Nginx 的 sub_filter 模块只能做简单的字符串替换, 倒是有个第三方的叫 subs_filter 的模块可以做正则匹配替换, 不过代码差不多 10 年没动过了, 如果是调用 PCRE 库的话, 这个模块本身确实不需要怎么更新 (不过涉及到正则表达式, 我估计这个模块大概率会大大拉慢 Nginx 速度...

* sub_filter: https://nginx.org/en/docs/http/ngx_http_sub_module.html
* subs_filter: https://github.com/yaoweibin/ngx_http_substitutions_filter_module


集中请求了一会 /en/wiki/Special:Random, CPU Time 直接 >30ms 了, 话说 Workers 对于 Free Plan 的这些性能超限的请求会直接截断还是怎样?


只要用到正则, 整页 html 文档用正则表达式来匹配 URL 效率还是很低, 而且还不如 HTMLRewriter 好用.

之前以为是 HTMLRewriter 针对每个 element 都去调用一遍 .element() method 去匹配和转换是性能瓶颈的原因, 这里发现对整页文档去 .replace() 好像并没有提升什么效率, 每页上百个链接, 每个链接都使用好几次正则, 难怪性能那么差 (


Kubernetes – Production-Grade Container Orchestration
Blog: Kubernetes 1.25: CustomResourceDefinition Validation Rules Graduate to Beta


现学了两天 TypeScript, 写了个 Wikipedia 代理.
https://github.com/ak1ra-lab/wikipedia-proxy

现在基本可用了, 大量使用正则表达式, 性能堪忧(CPU Time ~5.9 ms/request), 可能有很大优化空间. 除此之外还有点别的小问题, 部分图片资源报 403 错误, 貌似与 Permissions-Policy HTTP Header 有关, 还没研究明白...

#cloudflare #workers #wikipedia


现在基本可用了, 还有点小问题, 部分图片资源报 403 错误, 还是于前面所说的 Permissions-Policy 有关, 还没研究明白 (


搞定了!

不过这个 CPU Time 有点高啊, 性能堪忧... 虽然说 Cloudflare Workers 在 10ms 内都 ok (


我居然忘了 referer header!!!

页面内调用 /page/summary 接口, 请求肯定会带上正确的 referer header 的 (


现在的问题是要找到 Wikipedia 实现 page summary, 即在调用 /page/summary 接口时, 使用 .hover() 的那段代码? 然后想办法在返回这段脚本时替换里面的接口地址, 为 pathname 加个 region 前缀.

* https://en.wikipedia.org/api/rest_v1/#/Page%20content/get_page_summary__title_
* https://api.jquery.com/hover/

Wikipedia 好像大量用了 jQuery (


看了这个, 好像懂了, 但没找到问题原因 (
https://developer.chrome.com/en/docs/privacy-sandbox/permissions-policy/

---
让我复述一遍,

permissions-policy 这个 Header 是用于控制在页面内嵌入(iframe)其它页面时, 是否允许浏览器开启某些功能, 比如当服务器返回:

Permissions-Policy: geolocation=(self "https://trusted-site.example")

时, 且 iframe 中加入了 allow="geolocation" 属性时, 嵌入的 同源(self) 和 https://trusted-site.example 的 ifame 被允许使用 geolocation 功能.


还剩一些 HTTP Headers 的问题, 图片资源加载时被 403 了 (

permissions-policy:
interest-cohort=(),
ch-ua-arch=(self "intake-analytics.wikimedia.org"),
ch-ua-bitness=(self "intake-analytics.wikimedia.org"),
ch-ua-full-version-list=(self "intake-analytics.wikimedia.org"),
ch-ua-model=(self "intake-analytics.wikimedia.org"),
ch-ua-platform-version=(self "intake-analytics.wikimedia.org")

待我研究下这些字段是什么含义吧 (


结果是引入的 lodash 这个库的问题 (




怎么用 TypeScript 写的代码编译器都通过了运行时还能报 TypeError (?

Illegal invocation 是什么情况?


Kubernetes – Production-Grade Container Orchestration
Blog: Kubernetes 1.25: Use Secrets for Node-Driven Expansion of CSI Volumes




Kubernetes – Production-Grade Container Orchestration
Blog: Kubernetes 1.25: Local Storage Capacity Isolation Reaches GA


翻译成 JavaScript 是真的把 Type annotation/alias/interface 之类的定义都扔了, 而且像 type, interface 这些关键字在 JavaScript 中不存在, 另外, TypeScript 中用 const/var/let 定义的值翻译过来通通变成了 var (


原来我不小心跳过了 TypeScript Tooling in 5 minutes 这一节内容, 我说怎么一开始我不知道怎么运行 TypeScript 代码 (



20 last posts shown.

6

subscribers
Channel statistics