如何修复“向客户端发送响应时失败(22:无效参数)”

2024-04-09

使用 directio 时,如果有多个扇区大小不同的挂载点,Nginx 无法读取文件。

我们的服务器在 Nginx 的根文件夹下安装了不同的硬盘。我们所有的旧磁盘的扇区大小都是 512,当我们更换磁盘时,Nginx 突然无法从该磁盘读取文件。

服务器上似乎没有任何问题,我们可以毫无问题地列出/读取文件,但 Nginx 不能。在 error_log 中向客户端发送响应时显示失败(22:无效参数)。

[crit] pread() "/str/.../dsf13at.mp4" failed (22: Invalid argument) while sending response to client
[crit] pread() "/str/.../dsf13at.mp4" failed (22: Invalid argument) while sending response to client
[crit] pread() "/str/.../dsf13at.mp4" failed (22: Invalid argument) while sending response to client
[crit] pread() "/str/.../dsf13at.mp4" failed (22: Invalid argument) while sending response to client
[crit] pread() "/str/.../dsf13at.mp4" failed (22: Invalid argument) while sending response to client
[crit] pread() "/str/.../dsf13at.mp4" failed (22: Invalid argument) while sending response to client
[crit] pread() "/str/.../dsf13at.mp4" failed (22: Invalid argument) while sending response to client
[crit] pread() "/str/.../dsf13at.mp4" failed (22: Invalid argument) while sending response to client

硬盘信息

512硬盘

Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

新硬盘4096

Units = sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

问题是 Nginx 使用 512 的 directio_alignment,但当硬盘驱动器的扇区大小为 4096 时,这似乎不起作用。

Setting 方向对齐到 4k 解决了这个问题,Nginx 现在可以从 512 和 4096 扇区的驱动器中读取数据。

Nginx 配置:

aio threads;
aio_write on;
directio 8M;
directio_alignment 4k;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何修复“向客户端发送响应时失败(22:无效参数)” 的相关文章

  • Docker-nginx-反向代理:使用 docker-compose 构建时在上游找不到主机

    我正在使用 NGINX 容器将某些请求重定向到另一个容器 运行 docker compose up d 时 我收到以下错误 2019 09 26 18 05 00 emerg 1 1 在 etc nginx nginx conf 10 中的
  • X-Forwarded-For 和 X-Real-IP 标头之间的差异

    我使用 Nginx 作为反向代理 这些标头有什么区别 proxy set header X Forwarded For proxy add x forwarded for proxy set header X Real IP remote
  • 无法以 root 身份运行 uwsgi,“bind(): 权限被拒绝”

    我尝试使用此文档配置 uWsgi Django Nginx http uwsgi docs readthedocs org en latest tutorials Django and nginx html http uwsgi docs
  • 为从 nginx 反向代理转发的请求添加唯一 id

    我们运行 nginx 作为反向代理 将请求转发到运行 Compojure 的 Clojure 应用程序 Compojure 是一个封装 Jetty 的库 为我们的应用程序提供服务 Web 请求的能力 目前 我们捕获 nginx 和 Cloj
  • 如何设置 Nginx URI 以修复重定向到指定位置中的空 URI

    问题 当使用包含 符号的无效 URL 访问我们的网站时 Nginx 会抛出 400 Bad Request 错误 我们希望将请求重写为 WordPress 404 页面 而不是 Nginx 页面 我已经尝试过以下方法 location 40
  • 为什么要使用 Node.js 安装服务器(Nginx、Apache...)? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么 Node js Express Web 框架下需要 apache https stackoverflow com questions 9287747 why do we need apache
  • Docker 与 nginx 组合不断显示欢迎页面

    我是新来的docker并尝试使用最简单的 docker compose yml 显示一个 hello world 页面 并在此基础上构建最终完整的LEMP堆栈它将与我的服务器具有相同的配置 然而大多数教程已经过时 并且有很多使用方法dock
  • 为什么 nginx 接受 Host 标头与 server_name 不匹配的请求?

    我有一个这样设置的站点 nginx 作为代理服务器 通过 UNIX 套接字代理为 Django 站点提供服务的 Gunicorn 实例的请求 这是我的 nginx 配置 server listen 80 server name api my
  • NGINX 与 Tomcat 配置

    我是 Nginx 新手 我需要你的帮助 根据很多论坛我了解到我们所有的静态页面都存储在Nginx中 当有请求到来时 我必须将该请求传递给 tomcat 获取数据 并在 tomcat 生成响应后生成响应 目前 我刚刚做到了 我将请求直接传递给
  • nginx - 记录 SSL 握手失败

    我正在运行启用了 SSL 的 nginx 服务器 我的协议 密码设置相当安全 我已经在 ssllabs com 上检查过它们 但是 因为这是一个由我无法控制的 http 客户端调用的 Web 服务 所以我担心兼容性 重点是 有没有办法在我的
  • 使用 FastCGI 运行 Lua 脚本

    我目前正在尝试找出使用 FastCGI 与 lighttpd 或 Nginx 一起运行 Lua 脚本的方法 我唯一能挖到的是WSAPI http keplerproject github com wsapi 开普勒计划的一部分 但我想知道是
  • kubernetes nginx ingress 无法将 HTTP 重定向到 HTTPS

    我有一个托管在 Google Cloud 平台中的网络应用程序 该应用程序位于负载均衡器后面 而负载均衡器本身位于入口后面 入口设置了 SSL 证书 并按预期接受 HTTPS 连接 但有一个问题 我无法让它将非 HTTPS 连接重定向到 H
  • nginx 反向代理 websocket

    nginx 现在支持代理 websockets 但我无法找到任何有关如何在没有单独的情况下执行此操作的信息location应用于使用 websocket 的 URI 的块 我见过一些人推荐这种方法的一些变体 location proxy h
  • 如何在位置中使用 Nginx Regexp

    Web 项目将静态内容放入 some content img 文件夹中 url规则为 img some md5 但文件夹中的位置 content img 前两位数字 Example url example com img fe5afe048
  • 使用 Nginx 或 Apache 来提供动态内容? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • nginx 反向代理到 apache-wordpress 可以工作,但到外部 url 的 proxy_pass 失败

    我有一个针对 apache wordpress 的 nginx 反向代理设置 效果很好 但是 根据位置需要重定向到失败的外部 url 请检查以下配置 这是一个有效的设置吗 https platform com https platform
  • NGINX hashbang 重写

    我想知道 hashbang url 的位置或重写 nginx 指令会是什么样子 基本上像前端控制器一样通过 hashbang 路由所有非 hashbanged url 所以 http example com about staff 将路由至
  • 将应用程序级别用户名/用户 ID 注入 nginx/Apache 日志

    有没有办法将应用程序级别的用户名或 id 在本例中为 django 用户名或 id 注入 Apache 或 ngnix 日志中 请注意 我不是询问 HTTP 身份验证用户名 我目前正在使用一个简短的自定义中间件将此数据添加到响应标头 如下所
  • 将代码从 htaccess 重写为 nginx 配置?

    我在将 htaccess 文件中的重写代码实现到 nginx 配置中时遇到问题 我已经尝试过生成器 http winnginx com htaccess http winginx com htaccess用于生成我的重写 代码 我的ngin
  • nginx代理认证拦截

    我有几个服务 它们支持 nginx 实例 为了处理身份验证 在 nginx 中 我拦截每个请求并将其发送到身份验证服务 在那里 如果凭据正确 我将设置一个包含用户相关信息的 cookie 现在 请求应该被路由到适当的服务 并设置 cooki

随机推荐

  • Python断言风格

    我想知道我所做的是否是一种适当的断言方法 我正在尝试为 Python 的风格指南制作一些既简洁又非常正确的东西 try assert self port number 0 assert self handle None assert isi
  • viewDidLoad() 中的 tableView 数据源为空 - Swift

    下面是我的 ViewController 代码 GetRequest 中的 println 打印从 HTTP GET 请求接收到的正确数据 此时tableData有10个键值对 但是 如果我在 viewDidLoad 中调用 GetRequ
  • “集合已修改...”问题

    我有一个函数可以检查对象列表以查看它们是否已被单击并相应地触发 OnClick 事件 我相信该功能工作正常 但我遇到了问题 当我挂接到其中一个 OnClick 事件并删除该元素并将其插入到列表中的不同位置 该程序的典型功能 时 我收到 集合
  • 从 Hudson 获取 Eclipse PDT 每晚构建

    我一直在寻找 PDT 的最新夜间版本 但是官方下载网站 http www eclipse org epp download php仅截至 2010 年 9 月为止 经过一番搜索后 我被引导到他们CVS 仪表板 https hudson ec
  • 使用 Boost.Asio 时确保有效对象寿命的最佳方法是什么?

    最近经常使用 Boost Asio 我非常喜欢这个库 因为它提供了一种从当今的多核系统中榨取性能的绝佳方法 我曾多次问过自己这个问题 我认为在使用 Asio 进行异步调用时值得抛出关于对象生命周期 所有权的问题 我反复遇到的问题是 您经常必
  • 尝试以非 root 用户身份从容器内部写入已安装卷时出现问题

    我正在使用一个将运行 ZooKeeper 的容器 但我在安装到容器中的主机卷上遇到了权限问题 这是我的设置 在主机上 Ubuntu 14 04 创建了 zookeeper 系统用户 id 106 和组 id 111 创建目录 var log
  • 如何创建 NULL/空 DACL?

    我需要向每个人授予我正在创建的命名管道的访问权限 我理解的方法是创建一个 NULL 空 DACL 并将其传递给CreateNamedPipe 如何创建 NULL DACL 有人告诉我 这与传递 NULL 指针不同LPSECURITY ATT
  • 使用托管身份将 Function App 连接到 CosmosDB

    我正在尝试在函数应用程序中编写一个函数来操作 CosmosDB 中的数据 如果我将读写键放入环境变量中 我就能正常工作 为了使其更加强大 我希望它能够作为托管身份应用程序运行 该应用程序在 Cosmos DB 上具有 DocumentDB
  • 如何使用java删除文本文件中的特定字符串?

    我的输入文件有很多记录 作为示例 我们假设它有 这里的行号仅供参考 1 end 2 endline 3 endofstory 我期望我的输出为 1 2 endline 3 endofstory 但是当我使用这段代码时 import java
  • 将 Azure Functions 升级到 5.0:System.UriFormatException

    我一直致力于将我们的 Azure Functions 实现之一升级到 net 5 我已经与许多恶魔作斗争了 但正当我以为我已经整理了所有配置和依赖项注入更改时 它向我抛出了一个曲线球 后host RunAsync in Main 我得到以下
  • GWT CellTable 以编程方式选择 CheckBoxCell

    我有一个带有 CheckBoxCell 列的 cellTable 我想做的是在单元格表之外有一组按钮 让用户自动检查 取消检查一组不同的元素 例如检查所有 取消检查所有 但我想要更复杂的规则 我不明白的是如何访问该元素 我想通过行 列值 并
  • 为什么我没有从 Google OAuth 请求收到 RefreshToken?

    我正在尝试将 Google 日历集成到我的应用程序中 但在传递 RefreshToken 的 OAuth 授权方面遇到一些问题 我收到的 AccessToken 没有问题 但 RefreshToken 属性为 null 请参阅标记为 ERR
  • 用于处理 win32 FILETIME 的 Java 库?

    是否有任何 Java 库可以处理 win32文件时间 http msdn microsoft com en us library ms724284 28v vs 85 29 aspx时间间隔 它基本上是自 1601 年 1 月 1 日以来以
  • 3 个流体 Div 宽度 2 个固定边距?

    我有以下设置 但是将 div 的宽度设置为 30 左右并不能始终如一地工作 一旦窗口宽度小于某个数字 第三个 div 就会低于某个数字 有没有更好的方法来做到这一点 以便我的 div 始终保持内联并不断变得越来越小 同时它们之间的边距保持固
  • 用于 C++ 的 FastCGI

    我只找到了两个用于 C 的 FastCGI 库 有的是 官方 一 http www fastcgi com drupal node 6 q node 21 and 快速cgi https savannah nongnu org projec
  • 用户可编辑带有友好 ID 的 slugs

    Case 我的站点表单包含一个 slug 字段 如果输入了值 则应将其用作 slug 编辑 一些澄清 我想要的很像 slugs 在 WordPress 中的工作方式 如果未提供 slug gt slug 名称 如果提供了 slug gt 使
  • 如何有效检测逻辑和物理处理器的数量?

    目前我正在使用这个功能 它工作正常 但每个查询大约需要 1 秒 所以就我而言 我在应用程序中浪费了 3 秒钟 目前我正在考虑使用 3 个线程在一秒钟内获取所有信息 function GetWMIstring wmiHost wmiClass
  • Smalltalk:原语是如何实现的?

    我知道一切都是对象 您可以向 Smalltalk 中的对象发送消息来执行几乎所有操作 现在我们如何实现一个对象 内存表示和基本操作 来表示原始数据类型 例如如何 对于整数的实现 我查看了 Smalltalk 的源代码并发现了这个Smalli
  • Request.IsAuthenticated 始终为 true。我错过了什么?

    我正在尝试将用户名添加到 cookie 并在注销时清除它 但是Request IsAuthenticated返回始终为 true 因此我无法知道它是否是下一页上的成员 这是我正在尝试的 public void Logout FormsAut
  • 如何修复“向客户端发送响应时失败(22:无效参数)”

    使用 directio 时 如果有多个扇区大小不同的挂载点 Nginx 无法读取文件 我们的服务器在 Nginx 的根文件夹下安装了不同的硬盘 我们所有的旧磁盘的扇区大小都是 512 当我们更换磁盘时 Nginx 突然无法从该磁盘读取文件