我收到代理服务器返回的零星 502 错误。在检查数据包流时,我看到 nginx 向源服务器已发送 [FIN,ACK] 的套接字发送 POST 请求。我想了解这是如何可能的以及任何潜在的解决方案。是源端的问题(发送响应后 5 秒后才发送 FIN、ACK)还是代理的问题?
我的理解:
问题:
我不拥有原产地 - 所以无法捕获那里。
额外细节:
代理上的错误日志(nginx错误日志):
2017/04/17 …Run Code Online (Sandbox Code Playgroud) 我正在对常用 Web 服务器之间的差异进行个人研究。当涉及到特定功能时,我正在努力寻找明确的答案,对我来说最重要的是:即时重写响应正文的能力。
场景:web服务器(apache、nginx、iis、varnish、haproxy)部署为反向代理或应用服务器代理(nginx-->passenger为例)。
问题:在哪些网络服务器中以及如何重写响应正文。关于此类操作的简便性和性能的评论或 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
Run Code Online (Sandbox Code Playgroud)
还有什么我忘记了吗?谢谢。
一个 tcpdump pcap 导出并在另一台带有 wireshark 的机器上被调查显示出很多无效的 TCP 校验和消息。这是使用 TCP 卸载功能时已知并记录在案的现象:https : //wiki.wireshark.org/TCP_Checksum_Verification
唯一不清楚的是为什么校验和不正确?
TCP 校验和是在伪标头的帮助下在整个 TCP 段上计算的,并在校验和计算过程中使用全零的临时校验和值 ( http://www.tcpipguide.com/free/t_TCPChecksumCalculationandtheTCPPseudoHeader-2.htm#图_218)。然后丢弃伪标头。差异体现在哪里?