MCBBS Wiki:运维笔记:修订间差异

添加565字节 、​ 2023年6月19日 (星期一)
→‎Varnish:​ // Edit via Wikiplus
→‎VisualEditor:​ // Edit via Wikiplus
→‎Varnish:​ // Edit via Wikiplus
第51行: 第51行:


==Varnish==
==Varnish==
首先,要确保 Varnish 相关缓存逻辑正常工作,必须在 LocalSettings.php 设置 <code>$wgUseCdn = true;</code>
===Parsoid 405===
===Parsoid 405===
若编辑部分页面时出现<code>连接至Parsoid/RESTBase服务器错误(HTTP 405)</code>
若编辑部分页面时出现<code>连接至Parsoid/RESTBase服务器错误(HTTP 405)</code>


一般发生在配置 Varnish 后。配置 vcl 规则,直接请求 api.php 和 rest.php 不经过缓存。
配置 vcl 规则,直接请求 api.php 和 rest.php 不经过缓存。
<pre>if (req.url ~ "api.php" || req.url ~ "rest.php")
<pre>if (req.url ~ "api.php" || req.url ~ "rest.php")
     return (pass);
     return (pass);
第61行: 第62行:
Popups 默认情况下无论是否开启埋点功能,都会初始化 sessionId 并存储于 cookies 中,导致请求不经过缓存。
Popups 默认情况下无论是否开启埋点功能,都会初始化 sessionId 并存储于 cookies 中,导致请求不经过缓存。


编辑 <code>extensions/Popups/includes/PopupsContext.php</code> 的第 198 行为:
编辑 <code>extensions/Popups/includes/PopupsContext.php</code> 的第 198 行:
<pre>return false;</pre>
<pre>return false;</pre>


即可实现仅登录用户启用 Popups 。
即可实现仅登录用户启用 Popups 。
===HTTP 模式下 PURGE 请求===
MediaWiki 默认情况下,页面更新时会发送 PURGE 代理请求 Varnish 清理缓存。这仅适用于 Varnish 被配置为 HTTP 正向代理模式时。
如果 Varnish 在 HTTP 模式下工作,编辑 <code>includes/deferred/CdnCacheUpdate.php</code> 的 304 行:
<pre>$reqs[] = ( $baseReq );</pre>
以及 297 行:
<pre>'Host' => $urlInfo['host'],</pre>
即可实现只通过 HTTP 向 Varnish 发送 PURGE 缓存清理请求。


==本地化文字修改==
==本地化文字修改==
维护员、​界面管理员、​巡查员、​监督员、​小部件编辑者
3,469

个编辑