加入收藏 | 设为首页 | 会员中心 | 我要投稿 站长网 (https://www.beijidao.cn/)- 应用程序、AI行业应用、CDN、低代码、区块链!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

Windows多媒体站点搭建:5年运维总结的权限配置速成法

发布时间:2026-10-21 08:15:40 所属栏目:Windows 来源:DaWei
导读:  改版上线翻车。凌晨三点十七分,IIS 日志里飘着三百七十二个 403,全卡在 /media/preview/ 这个路径上——不是 404,是 403。我盯着那个斜杠后面跟着的 preview,突然想起昨天 PM 在站会里用激光笔戳大屏说“预览图要秒

  改版上线翻车。凌晨三点十七分,IIS 日志里飘着三百七十二个 403,全卡在 /media/preview/ 这个路径上——不是 404,是 403。我盯着那个斜杠后面跟着的 preview,突然想起昨天 PM 在站会里用激光笔戳大屏说“预览图要秒开”,而我当时点头点得太快,键盘右下角那个 Shift 键当场卡死,按下去像按在凝固的沥青里。


文章配图,仅供参考

  这个我敢打包票:Windows 多媒体站点的权限配置速成法,核心就四个字——优胜劣汰。不是“最小权限”,不是“AD 组策略模板”,是活下来的那个权限链,自动吃掉死掉的那七个。你配十个 ACL,最后真正起效的永远只有两个:一个是 IUSR 对根目录的读取(但得勾上“继承给子文件夹和文件”),另一个是 ApplicationPoolIdentity 对 App_Data 的修改(但必须取消“继承”,手动加,否则 IIS 自己会偷偷把你刚加的那条删掉——它删得比你写得还顺手)。我原以为是 NTFS 权限顺序的问题,结果抓包发现,是 w3wp.exe 进程启动时读了一次 registry key,HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\W3SVC\\Parameters\\MaxConnections 被改成 0 了,没人动过,但就是 0。我说不准是不是 KB5034126 的副作用,反正我删了那个 hotfix 重装补丁前,先去茶水间倒了杯水,回来发现测试已经把 bug 提到 Jira 里,标题写着【预览图加载一半白屏】,附件截图右下角时间是 02:59:43,而我的本地 Fiddler 抓到的第一个 OPTIONS 请求发出去时,Chrome DevTools 正好切在 Network → Filter → XHR 上,没切错,就是 XHR,哪怕这请求压根不是 XHR。


  优胜劣汰的意思是:你配的每一条权限都在赌谁先挂。比如让 MediaEncoder.exe 走本地 SYSTEM 跑转码?它跑三分钟崩一次,崩完连 Event Viewer 都不记——它懒得记。但你把它丢进 ApplicationPoolIdentity 下,它反而能扛住两小时,因为进程池重启时自动 reload config,顺便把僵死句柄清了。再比如,/upload/ 文件夹你给 IIS_IUSRS 写权限,它收得稳;可你要是给 Users 组也开了写,第二天就出事:某个后端同学下班前顺手往那里 drop 了个临时 .bat,结果凌晨两点被定时任务扫到,执行时弹出 UAC 框——当然没弹出来,它直接静默失败,然后整个上传队列就堵死了,堵得连错误日志都不写,只在内存里悄悄占着 187MB,直到我用 Process Explorer 查 Handle 数才看见。这事儿发生过两次,第二次我就把那个后端叫过来,让他看着我删掉 Users 组权限,他边点头边摸手机回微信,头都没抬。


  桌上那份麻辣烫汤洒了一滴,在键盘 W 和 S 键之间晕开一小片油光。我拿纸巾摁了一下,没吸干,反把 Caps Lock 键弄歪了。后来我才发现,其实不是歪了,是它本身出厂就微倾——这破键盘买来两年,键帽编号还是中文繁体,厂家标的是「大寫鎖定」,不是「Caps Lock」。这种细节我本来不会注意,但那天凌晨太静,隔壁工位的双屏壁纸是同一张图:左边是《2001:太空漫游》里黑石碑的线框模型,右边是 Windows Terminal 的默认主题深蓝背景,两块屏并排亮着,冷得像在殡仪馆值班。


  CSS 命名的事我真服气。我们前端现在用 bem,但 media-player.vue 里 class 写的是 player__cover--blurry,结果部署到 QA 环境发现,IE11 下 --blurry 这个 modifier 会让 transform: scale(1.02) 完全失效,图直接糊成马赛克。没人报,因为 IE11 已经被 PM 列进“非支持浏览器清单”第三页了,首页只写 Chrome/Firefox/Edge。但问题是——我们的监控脚本是跑在 Edge 的,Edge 用的是 Chromium 内核,所以它根本抓不到那个失效,而 IE11 里的 PerformanceObserver 又不触发 callback……你说这是不是玄学?反正我最后在 /media/preview/ 的 web.config 里加了 ,纯粹为了骗自己心理安慰。没用,但加了心里舒服点。


  PR review 也是绝。上周一个后端提交了 /api/v2/media/upload 的新路由,代码里写死了 new FileInfo(HttpContext.Request.Form.Files[0].FileName).Extension == ".mp4",没做 trim(),没做 toLower(),也没判 null。我提 comment 说“考虑 .MP4/.Mp4/.mP4”,他回复“前端已校验”,我回“前端 JS 校验是纸糊的”,他秒回“那前端校验加个正则”,我关掉 PR 页面去点了份新的外卖。回来刷新,他已合并。服务器上立马多了八个 .Mp4 文件,全在 /uploads/_temp/ 下躺尸,权限是 Administrators 全控,但 nobody 能删——因为有个 PowerShell 脚本每天凌晨跑 cleanup,它只认小写的 .mp4。我手动删了一次,删到第五个时,同事A走过来问:“那个 media 的 CDN 回源地址改了吗?”我没答,因为他手里那杯美式咖啡正从杯沿漏一滴,滴在我刚打开的 PowerShell 窗口最顶行,正好盖住 Get-ChildItem 的 g 字。


  工资条还没发,但绩效面谈我猜是下周二。今天上午 HR 发邮件提醒填 OKR,附件 PDF 第二页底下有句小字:“本次 OKR 未含多媒体服务稳定性指标”。挺好。至少说明——他们也不信这套权限配置能撑住三个月。


  接下来三天,我打算把所有 .MP4 后缀的文件统一 rename 成 .mp4,用 ForEach-Object -Parallel,开八个工作流;同时,把 C:\\inetpub\\wwwroot\\media\\preview\\web.config 里那行 customHeaders 先注释掉,等哪天真有客户用 IE11 访问再说。至于那个卡住的 Shift 键?不换了。它卡得刚好,让我每次想按快捷键时都停半秒——够我重新想一遍到底要不要 restart app pool。

(编辑:站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!