【问题标题】:Nginx (as front end to Apache) to serve WP Super Cache static filesNginx(作为 Apache 的前端)为 WP Super Cache 静态文件提供服务
【发布时间】:2009-07-27 21:52:26
【问题描述】:

我目前正在编写我的 Wordpress 博客,该博客托管在 VPS.NET VPS 上,使用 Nginx 作为 Apache 的前端来提供静态文件,而 Apache 负责 FastCGI 中的 PHP。这似乎工作得很好,但是我还没有设法让 Nginx 也提供 WP-SuperCache 文件,我希望获得最大性能(我现在不打算用 Nginx 完全替换 Apache,因为我有Virtualmin 许可证,它不支持 Nginx)。 我已经尝试了很多在这里和那里找到的规则,但最后没有一个对我有用,或者我错过了一些东西。 如果 Apache 停止了,其实我仍然可以直接通过 Nginx 获取图片、样式表和 javascript 到浏览器。 但是,如果我尝试在 Apache 停止的情况下浏览博客(肯定由 WP-SuperCache 缓存的页面),我从 Nginx 得到的只是“502 错误网关”。 任何想法将不胜感激。 非常感谢。

【问题讨论】:

  • 如果你发布你的 Nginx 配置,以及 WP-cache 文件的布局,这将有助于找到问题。
  • 正如Topbit所说,在提出建议之前需要知道你的路径。

标签: wordpress nginx


【解决方案1】:

Nginx 可以处理你的 fastCGI。通常,与 Nginx 捆绑在一起,Apache 所做的一切都是消耗资源。

关于 WP Super Cache,如果您创建一个新文件并粘贴此文件,它会同时为您提供该文件以及 FURLs...

# if the requested file exists, return it immediately
if (-f $request_filename) {
break;
}

set $supercache_file '';
set $supercache_uri $request_uri;

if ($request_method = POST) {
set $supercache_uri '';
}

# Using pretty permalinks, so bypass the cache for any query string
if ($query_string) {
set $supercache_uri '';
}

if ($http_cookie ~* "comment_author_|wordpress|wp-postpass_" ) {
set $supercache_uri '';
}

# if we haven't bypassed the cache, specify our supercache file
if ($supercache_uri ~ ^(.+)$) {
set $supercache_file /wp-content/cache/supercache/$http_host/$1index.html;
}

# only rewrite to the supercache file if it actually exists
if (-f $document_root$supercache_file) {
rewrite ^(.*)$ $supercache_file break;
}

# all other requests go to Wordpress
if (!-e $request_filename) {
rewrite . /index.php last;
}

现在,转到您的虚拟主机文件,或者如果您捆绑您的网站,则转到 nginx.conf,然后添加一行 ..

# Wordpress WP Super Cache plugin and permalinks.
include /usr/local/nginx/conf/wordpress_params.super_cache;

.. 其中 wordpress_params.super_cache 是您所说的我们创建的文件,并给出了相对于我展示的路径。

然后重启 Nginx 并打开 WP Super Cache 插件,对于漂亮的链接,添加一个永久链接结构。


事实上,要正确安装 Nginx,尤其是使用 WordPress 和配置 fastCGI,需要了解很多。如果您愿意,这对您来说将是一个好的开始...

..Setup WordPress on NGINX (FURLs & Cache) - VPS Bible Pt 13

回复。 Virtualmin .. 我知道您想要一个 CP,但事实是,资源成本大于软件成本.. 加上用 CP 做事需要更长的时间。

我目前正在发布一个包含 21 部分的 VPS 管理系列,该系列解决了 Nginx CP 的缺失问题。坦率地说,这就是你所需要的。

一两周后,我挑战你告诉我使用 CP 更快或更好:)

【讨论】:

  • 抱歉耽搁了,最近忙了很多事情。我确实设法让 nginx 自己工作得很好,所以谢谢你的建议。但是,我最终暂时使用了 Rackspace 的 Cloud Sites 服务;不幸的是我浪费了很多时间,我有很多项目要处理,并且意识到在这个阶段我不方便花太多时间在管理等上。Nginx 非常快!但遗憾的是,我遇到了 PHP-FPM 进程等问题。无论如何,谢谢。
【解决方案2】:

通过 Apache 运行 Nginx 似乎很愚蠢。

设置 Nginx 来提供 php 和动态页面本身,您将获得更快的服务,并且不会遇到 apache 死掉并让您的网络服务器 (Nginx) 挂起的问题。

如果您的管理面板不支持此功能,您可能首先应该只使用 apache。要么做一个,要么做另一个,两者都只是自找麻烦。

【讨论】:

  • 好吧,我经常听说 itlsef 的 nginx 会是一种更高效的方式来提供 php 页面和静态文件,但在其他一些情况下,我读过/听说过有人遇到问题这个设置。无论如何,出于多种原因,我真的很想摆脱 Apache,但我喜欢 Virtualmin 以及它为我提供的各种任务的易于管理,等等,我已经获得了我已经支付的 Pro 许可证.所以拥有Virtualmin而不使用它基本上是浪费钱。目前,我想让 nginx 至少可以处理 Super Cache 文件。
猜你喜欢
  • 2021-04-13
  • 2011-10-24
  • 2012-08-15
  • 1970-01-01
  • 2016-01-28
  • 2010-12-01
  • 2012-09-21
  • 1970-01-01
  • 2015-08-25
相关资源
最近更新 更多