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
    • 最新
    • 标签
主页 / user-195724

Mindaugas Bernatavičius's questions

Martin Hope
Mindaugas Bernatavičius
Asked: 2017-04-19 14:11:18 +0800 CST

代理尝试向上游发送数据到部分关闭的连接(重置数据包)后生成的 HTTP 502 响应

  • 3

我收到代理服务器返回的零星 502。检查数据包流时,我看到 nginx 向原始服务器已发送 [FIN,ACK] 的套接字发送 POST 请求。我想了解这怎么可能以及任何潜在的解决方案。是源的问题(它仅在发送响应后 5 秒后才发送 FIN、ACK)还是代理的问题?

这是说明问题的 PCAP 屏幕截图: 在此处输入图像描述

我的理解:

  • 来自源的响应是 [PSH, ACK];
  • 代理为使用该 [P.] 接收的数据发送一个 [ACK](wireshark 确认下一个 [ACK] 是针对之前收到的 [PSH-ACK]);
  • 7 秒过去了(注意时间戳 btw/ [FIN, ACK] 和我们的 POST ([PSH, ACK]));
  • origin 发送一个 [FIN, ACK]。当发送第一个 [FIN, ACK] 时,源 TCP 状态机应该处于 FIN_WAIT_1 状态。
  • 然后我们发送另一个 POST 导致 [RST] 作为回报,因为源不期望 [PSH, ACK]。

问题:

  • 这种情况的可能解释是什么?
  • 如果代理 (nginx) 已经收到 FIN 并且实际上正在确认它,为什么还要发送另一个请求!(POST [PSH, ACK] 数据包中的 ack 号实际上是 [FIN,ACK] 的 SEQ_NUMBER + 1 - 所以它是在确认幻位 FIN。
  • 来源仅在 5 秒后而不是立即返回 [FIN,ACK] 的可能原因是什么?读取超时/空闲超时?

我不拥有原产地 - 所以无法在那里捕获。

额外细节:

代理上的错误日志(nginx错误日志):

2017/04/17 06:51:07 [error] 123091#0: *225010841 upstream prematurely closed connection while reading response header from upstream, client: X.90.10, server: www.example.com, request: "POST /web/?a=b HTTP/1.1", upstream: "http://X.32.238:80/web/?a=b", host: "www.example.com"

此屏幕截图中显示了最后一个请求的 SEQ 和 ACK 编号:

在此处输入图像描述

networking
  • 2 个回答
  • 4892 Views
Martin Hope
Mindaugas Bernatavičius
Asked: 2016-07-14 22:26:45 +0800 CST

可以在不同的网络服务器(nginx、apache、iis 等)中重写响应主体

  • 4

我正在对常用 Web 服务器之间的差异进行个人研究。当涉及到特定功能时,我正在努力寻找明确的答案,对我来说最重要的是:动态重写响应体的能力。

场景:Web 服务器(apache、nginx、iis、varnish、haproxy)被部署为反向代理或应用服务器代理(以 nginx --> 乘客为例)。

问题:在哪些网络服务器中以及如何重写响应正文。关于此类操作的易用性和性能的评论或 2 也会有所帮助。

我的研究:

Content rewritting:

Nginx: ngx_http_sub_module
Nginx: LUA body_filter: https://groups.google.com/forum/embed/#!topic/openresty-en/Gj-s_hARc84 
Apache: mod_substitute
Apache: starting from 2.3 LUA can be used as a scripting language (and the response body rewriting with it is possible)
IIS: does not seem top be possible?
Varnish: possible, but hacky: https://github.com/aivarsk/libvmod-rewrite 
HAproxy: not possible, although it might be possible with LUA in the future

还有什么我忘记了吗?谢谢。

apache-2.2 iis nginx varnish reverse-proxy
  • 1 个回答
  • 2319 Views
Martin Hope
Mindaugas Bernatavičius
Asked: 2016-05-19 08:32:52 +0800 CST

用于域名的备份 DNS 服务器 - 最佳配置和故障排除

  • -1

假设我们有 1 个域的这些名称服务器。

ns.1.com
ns.2.com
ns.3.com
ns.4.com
backup-ns.1.com
backup-ns.2.com
  1. 我怎么知道哪个 NS 响应了这个特定的查询,例如使用 dig?考虑到 DNS 缓存。
  2. 在正常的 NS 查询中,它们将如何解决?是循环赛吗?
  3. 列出 NS 服务器的最佳方式是什么,例如:

    ns.1.com
    backup-ns.1.com
    ns.2.com
    backup-ns.2.com
    ns.3.com
    ns.4.com
    
domain-name-system redundancy dig
  • 1 个回答
  • 77 Views
Martin Hope
Mindaugas Bernatavičius
Asked: 2016-05-12 17:15:01 +0800 CST

TCP卸载网卡如何导致TCP校验和无效?

  • 0

导出的 tcpdump pcap 并在另一台使用 wireshark 的机器上进行调查显示大量无效的 TCP 校验和消息。这是使用 TCP 卸载功能时已知且记录在案的现象:https ://wiki.wireshark.org/TCP_Checksum_Verification

唯一不清楚的是为什么校验和不正确?

TCP 校验和是在伪标头的帮助下在整个 TCP 段上计算的,并在校验和计算过程中使用全零的临时校验和值 ( http://www.tcpipguide.com/free/t_TCPChecksumCalculationandtheTCPPseudoHeader-2.htm#图_218)。然后丢弃伪标头。差异在哪里蔓延?

tcpdump tcp tcp-offload-engine
  • 2 个回答
  • 7861 Views

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