标签: http

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

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

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

我的理解:

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

问题:

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

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

额外细节:

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

2017/04/17 …
Run Code Online (Sandbox Code Playgroud)

networking http nginx reverse-proxy

4
推荐指数
1
解决办法
6032
查看次数

如何将端口 80 重定向到 8080,同时保持 8080 对 Internet 关闭?

我有一个运行 CentOS 的虚拟机,带有一个 Web 服务器,用于托管我在那里部署的随机服务,因此为了使其可以通过 Internet 访问,我使用 .net 打开了端口 80 iptables。由于 Web 服务器本身作为服务在非root的专用用户下运行,因此无法直接使用端口 80。因此,在阅读文档后,我添加了从端口 80 到 8080 的重定向,以便 Web 服务器可以绑定到该端口(我确实计划稍后添加对 HTTPS 的支持,也许我会购买一个合适的域,然后使用让我们加密什么的)。

到目前为止,它运行良好,但最近我注意到端口 8080 也保持开放状态,因此任何针对端口 80 或 8080 的请求都会得到相同的响应。问题是,我只需要从外部访问端口 80,因为不知何故我的提供商认为让端口 8080 保持开放可能会造成某种潜在的滥用?不管怎样,我不希望定向到端口 8080 的外部请求得到响应,只有那些针对端口 80 的请求才应该得到响应。

到目前为止,我的配置文件如下所示iptables

*nat
:PREROUTING ACCEPT [89:7936]
:INPUT ACCEPT [70:3812]
:OUTPUT ACCEPT [41:2756]
:POSTROUTING ACCEPT [41:2756]
-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
COMMIT
*filter
:INPUT ACCEPT [916:134290]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [819:117300]
:f2b-sshd - …
Run Code Online (Sandbox Code Playgroud)

http iptables web port-forwarding

4
推荐指数
1
解决办法
1万
查看次数

验证:ISP 可以限制网站的区域访问吗?

正如我在服务器故障上列出的那样,我的网络托管商支持声明如下:

  • 因为他们可以从美国访问我的子域
  • 而来自德国的则解决了 403 错误
  • 它必须是我的互联网服务提供商,限制区域访问(即声称这不是他们的错)。

我只是想知道,因此想验证一下,ISP 如何、通过哪种技术可以允许在世界某些地区加载网站,而在其他地区浏览器/客户端会收到 403 错误。

如果你想自己尝试一下:

http https isp

4
推荐指数
1
解决办法
483
查看次数

HTTP 加速的反向代理

我为一个高流量网站提供托管设施,该网站将在未来 2 个月内获得流量高峰。为了让更多的它表现得更好,我想自己做好准备并放置一个前端服务器充当反向代理并通过它引导流量。

你建议我使用什么反向代理?

我过去使用过 Apache mod_proxy 并取得了一些不错的结果,但是有没有更高效的东西,更适合这项工作的东西?我需要它快速,尽可能缓存,并避免在不需要时执行请求。

我考虑过 HAProxy,但它似乎更倾向于提供高可用性(多个后端网络服务器)。在此设置中,整个网站托管在单个服务器上,运行一些 LAMP 内容。

linux http reverse-proxy

3
推荐指数
1
解决办法
868
查看次数

确保没有人可以查看我机器上的文件目录

如何防止外部用户以某种方式获取我机器上的文件列表?

例如,我的网站在文件夹 /htdocs/ 中,我也有一些其他随机文件。

我如何确保用户只能看到该站点,而永远无法了解我在该硬盘驱动器上的文件?

security http

3
推荐指数
1
解决办法
138
查看次数

为什么建立 https 连接比直接建立 http 连接需要更长的时间?

为什么安全 HTTP 连接 (https) 比典型的 HTTP (http) 慢?

只是有兴趣知道而已。

谢谢。

security ssl http encryption https

3
推荐指数
3
解决办法
2623
查看次数

在 Windows 2003 IIS-6 中跟踪或查看 Urls 404(未找到)请求的最简单方法是什么

在 Windows 2003 IIS-6 中跟踪或查看 Urls 404(未找到)请求的最简单方法是什么?我们正在迁移到新的 CMS,并且我们正在使用 ISAPI 重写将旧 URL 重定向到新 URL,但我们希望确保我们不会错过从裂缝中溜走的重要 URL。有没有办法将每个 404 Url 记录在某个文本文件中?我们使用的是 Windows Server 2003 IIS-6。IIS 可以做到这一点吗?也许我们需要一个工具?自定义代码?谢谢。

iis windows-server-2003 http iis-6

3
推荐指数
1
解决办法
208
查看次数

在端口 80 上设置 ssh 服务器和 http 服务器

我在同一台机器上有一个 web 守护进程(侦听端口 80 和 443)和一个 ssh 守护进程(侦听端口 22)。

我有一个客户端(生成 HTTP、HTTPS、SSH 流量)位于代理服务器(端口 8080)和防火墙(仅端口 80 和 443 打开)后面。

我决定使用 HTTP 隧道来传输通过代理服务器的 SSH 流量。问题是该流量的目的地是被防火墙关闭的端口 22。

我可以使用目标端口为 80 或 443 的 HTTP 隧道,这对防火墙很好,但不适用于目标服务器。

除了拥有 2 个服务器之外,还有其他解决方案吗:1 个 Web 服务器侦听端口 80 和 443,另一个 ssh 服务器侦听端口 80 或 443?

任何建议将不胜感激。

洛朗

http firewall ssh tunneling proxy

3
推荐指数
1
解决办法
2655
查看次数

Stunnel 过多的客户

我正在尝试连接 stunnel 和 haproxy 以将 https 连接转发到某些后端服务器。

我已经正确设置了 haproxy,而且我似乎正确设置了 stunnel。问题是,当我在一段时间后通过负载测试进行设置时,我开始看到这些日志条目(在开始出现连接被拒绝错误之前,我已经包含了来自正确连接的最后几个条目):

2010.05.05 11:23:29 LOG7[3498:3086792368]: https accepted FD=510 from 10.195.158.225:42722
2010.05.05 11:23:29 LOG7[3498:3035233168]: https started
2010.05.05 11:23:29 LOG7[3498:3035233168]: FD 510 in non-blocking mode
2010.05.05 11:23:29 LOG7[3498:3035233168]: TCP_NODELAY option set on local socket
2010.05.05 11:23:29 LOG7[3498:3035233168]: Waiting for a libwrap process
2010.05.05 11:23:29 LOG7[3498:3086792368]: https accepted FD=511 from 10.195.158.225:42723
2010.05.05 11:23:29 LOG7[3498:3035167632]: https started
2010.05.05 11:23:29 LOG7[3498:3035167632]: FD 511 in non-blocking mode
2010.05.05 11:23:29 LOG7[3498:3035167632]: TCP_NODELAY option set on local socket
2010.05.05 11:23:29 …
Run Code Online (Sandbox Code Playgroud)

ssl http proxy haproxy stunnel

3
推荐指数
1
解决办法
5242
查看次数

从 DNS 记录重定向 www

与此问题相关:在 URL 中包含“www”有什么意义?

如何从 DNS 记录级别执行“www”重定向?我不想调整 apache 或 IIS 来实现这一点。

domain-name-system http url redirect

3
推荐指数
1
解决办法
473
查看次数