AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1025922
Accepted
Muhammad Ebrahym
Muhammad Ebrahym
Asked: 2020-07-21 00:34:52 +0800 CST2020-07-21 00:34:52 +0800 CST 2020-07-21 00:34:52 +0800 CST

我们正在将我们的 wordpress 迁移到静态站点。那就是在 1 个文件夹中创建超过 400,000 个文件夹。子文件夹的数量有限制吗?

  • 772

我们的 wordpress 网站已有数年历史,有许多帖子被索引并在 google 上排名很好。对于任何严重的流量,我的 wordpress 服务器都无法使用 - 即使在几轮 wordpress 优化之后也会发生这种情况。我们已经受够了 wordpress 问题,并决定迁移。

我们正在从 wordpress 迁移到静态站点以获得更好的性能,以便不会为每个请求呈现页面,并且静态 html、css、js 和图像文件可以直接由 nginx Web 服务器提供,而不是在后端访问另一台服务器。

问题是我们有超过 400,000 个帖子,每个帖子都有一个静态页面,因此我们将在其中存储相关文件,例如该帖子的 html 和图像文件。所以我们的主网络文件夹将有超过 400,000 个子文件夹。这会是Linux上的问题吗?或者这会成为我的 Web 服务器性能的问题吗?在这种情况下,托管方面有什么我应该关心的吗?

这里有没有人尝试过将 ext4 与 nginx 一起使用,并且文件夹中有大量子文件夹?真的会影响性能吗?有关于 ext4 处理大量文件夹的性能的相互矛盾的报告......我们不希望迁移增加复杂性,除非确实有必要。迁移对我们来说已经是一项艰巨的任务 :) 并且我们希望使其尽可能简单,除非存在性能下降的真正风险。有没有人在单个文件夹中使用具有大量子文件夹或文件的 nginx 网络服务器?

先感谢您。

inode wordpress ext4 cms static-files
  • 3 3 个回答
  • 168 Views

3 个回答

  • Voted
  1. Best Answer
    Michael Hampton
    2020-07-21T10:59:36+08:002020-07-21T10:59:36+08:00

    这是一种减少Artem S. Tashkinov 的回答中给出的目录数量并配置 nginx 以遵守原始 URL 结构的方法。

    为每个 URL 创建一个目录结构,每个 URL 的前两个字符是文档根目录下的一个目录。将以这两个字符开头的静态内容放在该目录下。

    使这成为可能的 nginxlocation非常简单:

        location ~ /(..) {
                root /srv/www/example.com/$1;
        }
    

    这只是将 URL 的前两个字符放在初始字符之后/,并将其附加到文档根目录。

    请注意,这需要将所有内容移动到两个字符子目录中。这包括顶层/index.html,它必须放在$root/in/index.html. /images作为另一个示例,必须将顶级 URL 路径移动到$root/im/images. 原始文档根目录将只包含这两个字符的目录名称。

    您的文档 URL 将保持不变。例如,可访问的博客文章/15-things-to-do-when-visiting-dubai将位于您的文件系统中$root/15/15-things-to-do-when-visiting-dubai/index.html,但仍可通过原始 URL 访问。(请注意,如果您的原始 URL 没有尾部斜杠,则会添加一个,并生成 301 重定向以进行 SEO 保存。)

    最终文档根目录最多只有几千个目录,而每个目录或文件可能最多也就几百个。这很容易被任何 Linux 文件系统处理。

    • 2
  2. Artem S. Tashkinov
    2020-07-21T03:54:52+08:002020-07-21T03:54:52+08:00

    在最好的情况下,您应该避免在大多数文件系统中每个目录有超过几千个文件,否则遍历它会花费太多时间和资源。

    您可以创建一个目录结构,例如:

    • 00
    • 01
    • 02

    ...

    • FE
    • 法郎

    这将为您提供 256 个目录,并且您可以无限嵌套它们。

    或者您可以尝试通过以下方式组织帖子/YYYY/MM/DD/$UID-post-title

    • 1
  3. Tim
    2020-07-21T10:17:39+08:002020-07-21T10:17:39+08:00

    由于该站点是静态的,如何将其托管在 AWS S3 上并使其成为 AWS 的问题?

    S3 可以直接托管网站,并且每个存储桶可以在存储桶中存储几乎无限数量的文件(它称为对象)。您过去必须非常小心文件命名,但这已基本解决,现在不是大问题。不过请阅读性能指南,并进行良好的测试。

    S3 的存储或带宽并不总是便宜的,您应该使用AWS 计算器来计算您的成本(新的计算器似乎没有进行 S3 定价)。您可以通过在将每个对象上传到 S3 时向每个对象添加缓存标头,然后将您的 S3 存储桶放在CloudFlare CDN后面(请参阅此问题)来降低流量成本。CloudFlare 有免费和付费计划,但有这么多的流量和内容,我希望你会想要一个付费计划。

    • 0

相关问题

  • -bash:无法为此处创建临时文件-文档:设备上没有剩余空间

  • 脏的inode

  • 链接到特定的 inode

  • 确定 inode 使用的位置

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve