【问题标题】:nignx rewrite with or without ifnginx 重写有或没有 if
【发布时间】:2015-02-11 03:02:54
【问题描述】:

我最近在我们的 centos plesk 服务器上启用了 nginx + php-fpm。 Apache 已停止,我正在寻找完全禁用它的方法。

我运行一个 wordpress 网站,在接下来的几天里应该会获得相当多的流量(1000 多个并发)。这是我的问题:

据我所知,关于 nginx 的 wordpress 永久链接,我有这两个选项

重写 /$ /index.php 中断; - 要么 - if (!-e $request_filename) { rewrite ^(.*)$ /index.php break; }

第一个有效,而且速度也很快,但它破坏了子目录、robots.txt、xml 站点地图等中的 index.htlm (404)

第二个的工作原理完全像想要的那样,但我的性能受到了打击。开始加载页面大约需要一秒钟。

你们中的任何人有什么想法,因为我找不到任何东西吗?

【问题讨论】:

  • 使用try_files 和缓存。此外,最好将所有静态资产放在单独的目录中,并设置 nginx 不要尝试从该目录重写和提供 php。

标签: wordpress nginx centos plesk


【解决方案1】:

您应该阅读http://wiki.nginx.org/Pitfalls,它会在“检查 IF 文件是否存在”部分回答您的问题。

比使用 if 更好的方法是使用位置匹配和 try_files

location / {
  try_files $uri $uri/ /index.php?$args;
}

【讨论】:

  • 抱歉这个愚蠢的问题,但我将如何通过 plesk 添加 / 位置规则?它不会让我,因为默认情况下 conf 文件中已经有一个。有没有办法超越它?还是我必须手动编辑 conf 并“打开”面板?
  • 我从未尝试通过 plesk 配置任何 nginx,所以我不知道。我怀疑您可以更改生成 conf 文件的模板。
猜你喜欢
  • 2021-01-11
  • 1970-01-01
  • 1970-01-01
  • 2016-07-05
  • 2021-02-07
  • 2017-07-05
  • 2015-02-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多