【问题标题】:Apache 404 error at NFS partition when symlinked documentroot符号链接 documentroot 时 NFS 分区出现 Apache 404 错误
【发布时间】:2012-04-27 20:21:11
【问题描述】:

我有 apache 虚拟主机:

<VirtualHost IP_WAN:80>
  ServerName test.localnet
  DocumentRoot /srv/http/localnet/test/trunk/docroot
  <Directory /srv/http/localnet/test/trunk/docroot>
    Options Indexes
  </Directory>
</VirtualHost>

分区 /srv 是 NFS3 挂载的文件系统:

172.16.0.2:/srv /srv nfs    nodev 0 0

在服务器端它由以下方式导出:

/srv    172.16.0.0/255.255.255.240(rw,sync,no_subtree_check,no_root_squash)

目录 /srv/http/localnet/test/trunk 是到 /srv/http/localnet/test/exports/trunk-v2 的绝对符号链接

在 /srv/http/localnet/test/exports 我已经导出了 SVN 树(trunk-v1、trunk-v2、trunk-v3)

当我向 apache 询问 http://test.localnet 时,它提供 200 OK 并从 /srv/http/localnet/test/exports/trunk-v2/docroot 索引

但是:

如果我删除符号链接 /srv/http/localnet/test/trunk 并创建一个新版本到另一个版本(ln -s /srv/http/localnet/test/exports/trunk-v3 /srv/http/localnet/测试/中继),apache给我404 Not Found。大约需要几秒钟/几分钟,然后一切都会恢复正常。

如果我在这种情况下执行 ls -la /srv/http/localnet/test/trunk/ ,它会立即恢复正常。我认为 NFS 缓存存在一些问题,但我无法找到问题发生的确切位置以及如何防止它。符号链接与前一个符号链接占用相同的 inode,两个目标(旧的和新的)都存在。

在服务器端,我以这种方式安装了 /srv 分区:

/dev/xvda7 on /srv type xfs (rw,nosuid,nodev)

我也使用这个参数:

echo 262144 >/proc/sys/net/core/rmem_max
echo 262144 >/proc/sys/net/core/rmem_default
echo 262144 >/proc/sys/net/core/wmem_max
echo 262144 >/proc/sys/net/core/wmem_default
echo noop >/sys/block/xvda7/queue/scheduler
echo 0 >/sys/block/xvda7/queue/read_ahead_kb

我也在尝试将网络接口的 MTU 调到 9000,但没有成功。

有人知道,有什么问题吗?为什么 apache 在“手动”刷新目录结构(ls)之前找不到符号链接?非常感谢

翁德拉

【问题讨论】:

  • 请用您更正的内容编辑您的帖子。
  • 已编辑..抱歉我找不到“编辑”按钮..
  • 每一次都有第一次。让我有些困惑以弄清楚如何将代码格式化为代码,无法理解常见问题...

标签: apache2 symlink nfs performance


【解决方案1】:

解决方案似乎是: http://publib.boulder.ibm.com/httpserv/manual70/mod/core.html#enablemmap

“使用 NFS 挂载的 DocumentRoot,如果在 httpd 进行内存映射时删除或截断文件,则 httpd 可能会由于分段错误而崩溃”

这正是删除页面路径中的符号链接时的情况。 希望它可以帮助其他人:-)

【讨论】:

    猜你喜欢
    • 2013-08-11
    • 2023-03-16
    • 1970-01-01
    • 2019-08-28
    • 2015-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多