rtcamp/nginx-helper

每当编辑/发布帖子时,清理nginx的fastcgi/proxy缓存或redis缓存。还有更多功能。

安装数: 15,505

依赖项: 2

建议者: 0

安全性: 0

星星: 228

关注者: 50

分支: 121

开放问题: 71

类型:wordpress-plugin


README

Project Status: Active – The project has reached a stable, usable state and is being actively developed.

贡献者: rtcamp, rahul286, saurabhshukla, manishsongirkar36, faishal, desaiuditd, darren-slatten, jk3us, daankortenbach, telofy, pjv, llonchj, jinnko, weskoop, bcole808, gungeekatx, rohanveer, chandrapatel, gagan0123, ravanh, michaelbeil, samedwards, niwreg, entr, nuvoPoint, iam404, rittesh.patel, vishalkakadiya, BhargavBhandari90, vincent-lu, murrayjbrown, bryant1410, 1gor, matt-h, pySilver, johan-chassaing, dotsam, sanketio, petenelson, nathanielks, rigagoogoo, dslatten, jinschoi, kelin1003, vaishuagola27, rahulsprajapati, Joel-James, utkarshpatel, gsayed786, shashwatmittal, sudhiryadav, thrijith, stayallive, jaredwsmith, abhijitrakas, umeshnevase, sid177, souptik, arafatkn, subscriptiongroup, akrocks

标签: nginx, 缓存, 清除, nginx map, nginx 缓存, maps, fastcgi, 代理, redis, redis 缓存, 修改,永久链接

至少需要 3.0

测试到 6.1

稳定标签 2.2.5

许可证: GPLv2 或更高版本(当然)

许可证URI: https://gnu.ac.cn/licenses/gpl-2.0.html

捐赠链接: http://rt.cx/eedonate

每当编辑/发布帖子时,清理nginx的fastcgi/proxy缓存或redis缓存。还有更多功能。

描述

  1. 在WordPress与nginx一起使用时,从永久链接中删除index.php
  2. 当作为使用nginx-srcache-module创建的全页缓存时,添加清除redis缓存的支撑。
  3. 添加对模块中的nginx fastcgi_cache_purge & proxy_cache_purge指令的支持。提供设置,以便您可以根据需要自定义清除规则。
  4. 在WordPress多站网络安装上添加对nginx map{..}的支持。使用它,即使PHP/MySQL崩溃,Nginx也可以服务PHP文件上传。请查看以下教程列表以获取相关的Nginx配置。

教程

您需要遵循以下一个或多个教程以获得所需功能

安装

自动安装

  1. 登录到WordPress管理面板,转到插件菜单并点击添加新插件。
  2. 在搜索框中输入“Nginx Helper”并点击搜索插件。从搜索结果中,选择Nginx Helper并点击现在安装。Wordpress将要求您确认以完成安装。

手动安装

  1. 解压缩zip文件。
  2. 将它们上传到WordPress安装上的/wp-content/plugins/目录。
  3. 然后从插件页面激活插件。

为了正确配置,请查看我们在描述标签中的强教程列表

常见问题解答

重要 - 请参阅https://github.com/rtcamp/nginx-helper#frequently-asked-questions以获取最新的常见问题解答。

常见问题解答 - 安装/兼容性

Q. 这会直接工作吗?

不。您需要在Nginx端进行一些更改。请查看我们的教程列表

常见问题解答 - Nginx Fastcgi Cache Purge

问题:有没有“清除所有”按钮?它会清除整个网站吗?

是的,它会。它会物理清空缓存目录。默认设置为 /var/run/nginx-cache/

如果您的缓存目录不同,您可以在 wp-config.php 中覆盖它,通过添加 define('RT_WP_NGINX_HELPER_CACHE_PATH','/var/run/nginx-cache/');

将路径替换为您自己的。

问题:它适用于自定义帖子类型和分类法吗?

是的,它以相同的方式处理所有帖子类型。

问题:我如何知道我的 Nginx 配置对 fastcgi 清除是正确的?

手动清除缓存中的任何页面,请遵循前一个答案中的说明。

从版本 1.3.4 开始,Nginx Helper 在 HTML 源文件的末尾添加了一条注释(在您喜欢的浏览器中的“查看源代码”):<!--使用 Nginx-Helper 缓存于 2012-10-08 07:01:45。它执行了 42 次查询,耗时 0.280 秒.-->。这显示了页面最后缓存的日期和时间。每次清除和刷新缓存中的此页面时,此日期和时间都会重置。只需在手动清除前后检查此注释即可。

只要您不清除页面(或进行使页面从缓存中清除的更改),时间戳将保持不变,即使您不断刷新页面。这意味着页面是从缓存中提供的,它正在工作!

其余部分显示了数据库查询和加载此页面所节省的时间。(如果您不使用 fast-cgi-cache,这将是一个额外的资源负载。)

问题:我需要立即清除缓存的页面!我该如何操作?

Nginx Helper 插件处理缓存中页面需要清除的常规场景。例如,当编辑帖子或批准帖子上的评论时。

要立即清除页面,请按照以下说明操作

  • 假设我们有一个位于以下域名的页面:http://yoursite.com/about
  • 在域名和 URL 的其余部分之间插入 '/purge/'。
  • 因此,在上面的例子中,清除 URL 将是 http://yoursite.com/purge/about
  • 只需在浏览器中打开它,页面就会立即清除。
  • 不言而喻,如果您有一个名为“清除”的页面或分类法,这不会起作用。

常见问题解答 - Nginx Redis 缓存

问题:我可以覆盖 Redis 主机名、端口和前缀吗?

是的,您可以在 wp-config.php 中定义常量,强制覆盖 Redis 主机名、端口或前缀。例如

define( 'RT_WP_NGINX_HELPER_REDIS_HOSTNAME', '10.0.0.1' );

define( 'RT_WP_NGINX_HELPER_REDIS_PORT', '6000' );

define( 'RT_WP_NGINX_HELPER_REDIS_PREFIX', 'page-cache:' );

常见问题解答 - Nginx 映射

问题:我的多站点已经使用了 WPMU_ACCEL_REDIRECT。我还需要 Nginx 映射吗?

当然。 WPMU_ACCEL_REDIRECT 减少了 PHP 的负载,但它仍然要求 WordPress 即 PHP/MySQL 为静态文件(例如您帖子中的图像)做一些工作。Nginx 映射让 Nginx 自行处理文件,绕过 WordPress,这给您带来了更好的性能,而无需使用 CDN。

问题:我正在使用 X 插件。它会在 Nginx 上工作吗?

很可能可以。如果一个 WordPress 插件没有明确使用 Apache-only mod,它应该在 Nginx 上工作。一些插件可能需要一些额外的修改。

仍需要帮助!

请将您的问题发布在我们的免费支持论坛

屏幕截图

1. Nginx 插件设置

Nginx plugin settings

2. 剩余设置

Remaining settings

变更日志

2.2.5

  • 添加了启用/禁用清除源的能力。 #281 - 由 Amaan Khan
  • 修复了当 Redis 端口设置为空字符串时的未定义端口错误。 #333 - 由 Amaan Khan

2.2.4

  • 介绍了指定NGINX_HELPER_LOG常量的功能,使用户能够启用日志功能。#318 - 由Vishal Kakadiya提供
  • 已经启用日志功能的nginx-helper插件用户将不会受到影响。但是,如果日志被禁用,用户必须定义NGINX_HELPER_LOG常量来重新启用日志功能。

2.2.3

2.2.2

  • 添加动作rt_nginx_helper_after_purge_all,在清除所有缓存后触发,无论使用何种缓存类型。 #232 - 由Julien-prrs提供
  • 修复了设置未保存的问题,因为按钮的值本地化(适用于任何语言)。 #236 - 由umeshnevase提供
  • 修复了“自定义清除URL”选项显示先前值的问题。#240#241 - 由KirillGritcenko提供
  • 在WordPress 5.4上测试

2.2.1

2.2.0

  • 添加过滤器rt_nginx_helper_fastcgi_purge_suffix以更改FastCGI缓存的清除后缀。 #141 - 由stayallive提供
  • 添加过滤器rt_nginx_helper_fastcgi_purge_url_base以更改FastCGI缓存的清除URL基础。 #141 - 由stayallive提供
  • 将我们的代码更新以符合WordPress编码标准。 #209#225 - 由 abhijitrakaschandrapatel 贡献。
  • 在清除缓存之前检查并验证清除功能是否已启用。 #168 - 由 jaredwsmith 贡献。
  • 在清除功能禁用时,在管理栏中隐藏清除缓存按钮。 #218#219 - 由 mbautistachandrapatel 贡献。
  • 不要在WordPress登录页面上添加Nginx时间戳。 #204#220 - 由 peixotormschandrapatel 贡献。

2.1.0

  • 为设备类型缓存清除添加通配符缓存键删除。 #203 - 由 pradeep910 贡献。
  • 添加过滤器 rt_nginx_helper_purge_url 以过滤要清除的URL。 #182 - 由 todeveni 贡献。
  • 添加过滤器 rt_nginx_helper_purge_cached_file 以过滤缓存文件名。 #182 - 由 todeveni 贡献。
  • 添加过滤器 rt_nginx_helper_remote_purge_url 以过滤要清除的远程URL。 #182 - 由 todeveni 贡献。
  • 添加操作 rt_nginx_helper_after_fastcgi_purge_all 在清除FastCGI缓存后执行。 #182 - 由 todeveni 贡献。
  • 添加操作 rt_nginx_helper_after_redis_purge_all 在清除Redis缓存后执行。 #182 - 由 todeveni 贡献。
  • 添加操作 rt_nginx_helper_purged_file 在从缓存中删除文件后执行操作。 #182 - 由 todeveni 贡献。
  • 添加操作 rt_nginx_helper_before_remote_purge_url 在清除远程URL之前执行操作。 #182 - 由 todeveni 贡献。
  • 添加操作 rt_nginx_helper_after_remote_purge_url 在远程清除请求后执行操作。 #182 - 由 todeveni 贡献。
  • 修复在新评论上进行清除时的问题。 #175 - 由 jinschoi 贡献。
  • 修复将Nginx时间戳添加到无效内容类型的问题。 #200 - 由 thrijith 贡献。
  • 处理截断nginx.log文件时的文件大小异常。#206 - 由 peterjanes

2.0.3

2.0.2

  • 修复第一次安装插件且Redis不可用时的未定义错误。#162 - 由 Joel-James
  • 删除nginx映射部分的额外间距。#169 - 由 ShashwatMittal
  • 前端管理栏中的Purge Cache菜单现在清除当前页面。#173 - 由 imranhsayed
  • 修复切换页面从发布到草稿时缓存未清除的问题。#174 - 由 imranhsayed
  • 修复自定义清除URL选项在多个URL使用时不会显示换行的问题。#184 - 由 mist-webit

2.0.1

  • 修复多站点设置URL的问题:使用network_admin_url获取正确的网络设置URL。#163 - 由 Joel-James
  • 修复在PHP 5.5之前使用空语句时的PHP错误。#165 - 由 PatelUtkarsh

2.0.0

1.9.12

  • 通过在wp-config.php中定义常量来允许覆盖Redis主机/端口/前缀。#152 - by vincent-lu

1.9.11

  • 修复了没有尾部斜杠的永久链接不会清除的问题。#124 - by Patrick
  • 在删除权限之前检查角色是否存在。#134 - by 1gor

1.9.10

  • 修复了清除时删除Nginx缓存文件夹的问题。#123 - by johan-chassaing
  • 针对WordPress安装在单独文件夹的安装,修复了Redis清理所有功能的问题。#130 - 由pySilver

1.9.9

1.9.8

  • 修复了当使用WPML插件时主页缓存被清除的问题。#116 - 由Niwreg
  • 修复了Purge Cache清除整个Redis缓存的问题。#113 - 由HansVanEijsden
  • WPMU中所有站点共享一个日志文件。
  • 在WPMU中点击“清除缓存”按钮时,单站点Redis缓存将被清除。#122 - 由Lars Støttrup Nielsen
  • 修复了通知和警告问题。

1.9.7

  • 如果cron或wp-cli被使用,则移除时间戳。#114 - 由samedwards
  • 修复了通知和警告问题。

1.9.6

  • 修复了发布文章时的缓存清理问题。
  • 当Redis服务器未安装时,错误已修复。

1.9.5

添加了自定义清理URL选项。

1.9.4

  • 添加了Redis服务器连接超时。
  • 添加了RedisException处理。

1.9.3

  • 添加了PhpRedis API支持。
  • 添加了redis-lua脚本支持,以便快速清理整个缓存。
  • 添加了composer.json支持
  • 修复了管理栏中的缓存清理链接。
  • 将初始设置更新为包括'purge_method' #99 - 由gagan0123

1.9.2

修复了Redis缓存和FastCGI缓存的清理问题

1.9.1

修复了自定义文章类型的清理问题

1.9

添加了Redis缓存清理支持。

1.8.13

修复了未设置“启用日志记录”时未定义索引的PHP通知。

1.8.12

更新了readme和changelog

1.8.11

修复了URL转义问题 #82 - 由javisperez

1.8.10

  • 安全漏洞修复

1.8.9

  • 默认设置修复和wp-cli示例修正 - 由bcole808

1.8.8

  • 添加了不使用nginx清理模块清除缓存的功能 - 由bcole808

1.8.7

  • 添加了用于从其他插件清除缓存的动作rt_nginx_helper_purge_all - 由gungeekatx

1.8.6

  • 从插件zip/svn中移除了wercker.yml。
  • 更新了readme

1.8.5

1.8.4

  • 修复了未定义索引问题,并正确设置了“purge_archive_on_del”键

1.8.3

  • 已测试与WordPress 4.0兼容
  • 修复了问题#69

1.8.1

  • 已测试与wordpress 3.9.1兼容
  • 修复了与Mailchimp的Social插件的冲突

1.8

  • 新管理界面
  • 修复了缺失wp_sanitize_redirect函数调用的问题

1.7.6

  • 更新了后端UI
  • 添加了语言支持

1.7.5

  • 修复了删除时清除主页的选项名称不匹配问题。

1.7.4

  • 默认禁用清除和戳记。

1.7.3

  • 抑制了可以安全忽略的与unlink相关的错误消息。
  • 修复了清理所有选项中的bug。

1.7.2

  • pjv修复了日志文件中的bug。

1.7.1

  • 修复了真正清理和行政屏幕中的bug。

1.7

1.6.13

  • pjv 更改了访问主页URL的方式。现在插件使用 home_URL() 函数,而不是网站选项。

1.6.12

  • telofy 增加了原子和RDF源清理。

1.6.11

  • 从管理界面移除了评论,因为它们干扰了3.5及更高版本的媒体上传。

1.6.10

  • 清理了代码。
  • 为代码添加了致谢。
  • 改善了附件清理。

1.6.9

  • 添加了“伪”按钮以清除所有内容,以避免误导用户。

1.6.8

1.6.7

  • jk3us 为缓存验证评论添加了更好的内容类型检测

1.6.6

1.6.5

  • 修复了干扰存档清理设置的错别字。感谢 Daan Kortenbach 指出这一点。

1.6.4

  • 由于嵌套导致某些服务器混乱,因此改进了地图生成代码以符合更好的约定。
  • 将地图更新过程添加到 admin_init 以实现频繁刷新。

1.6.3

  • 修复了重复条目。

1.6.2

  • 在改进的多站和多域名映射的修订代码中修复了另一个错误。

1.6.1

  • 在改进的多站和多域名映射的修订代码中修复了错误。

1.6

  • 修订了改进的多站和多域名映射的代码。

1.5

  • 时间戳现在仅添加到内容类型 text/html
  • 添加了切换创建时间戳的选项

1.4

  • 修复了与评论状态命名相关的错误,这导致清理失败。

1.3.9

  • 移除了多余的标题。

1.3.8

1.3.7

  • 将操作钩子改为从 'wp_footer' 返回 'shutdown' 以添加验证注释。
  • 添加了检查以防止向ajax请求添加注释,

1.3.6

  • 将操作钩子从 'shutdown' 更改为 'wp_footer' 以添加验证注释。这干扰了其他插件。

1.3.5

  • 改进了“阅读我”。
  • 改进了缓存验证注释。

1.3.4

1.3.3

  • 修复了使用域名映射插件的多域名安装的地图生成问题,其中博客ID没有显示。

1.3.2

  • 修复了使用域名映射插件的多域名安装的地图生成问题。

1.3.1

  • 对目录结构和文件名进行了细微调整。

1.3

  • 改进了“阅读我”。

1.2

  • 修复了地图生成错误。
  • 修复了清理逻辑。
  • 修复了在禁用和重新启用清理时丢失清理设置的UI。
  • 进行了细微的UI调整。

1.1

  • 改进了 readme.txt。添加了截图。

1.0

  • 第一个版本

升级通知

2.2.3

Nginx Helper 2.2.3,修复了保存导航菜单、清除CPT日期存档以及当文章被删除且传递的URL作为参数通过 "rt_nginx_helper_purge_cached_file" 钩子时清除页面和文章URL的性能问题。

这对你有吸引力吗?

Join us at rtCamp, we specialize in providing high performance enterprise WordPress solutions