nginx - EC2 Nginx 卡在 SYN_ACK 中,用于来自单个 ip 的 http 请求
问题描述
我有一个 EC2 实例启动并运行,默认为 amzn2 linux。我已经从安全组中的所有 ip 启用了 HTTP、HTTPS、SSH 入站规则,因此应该可以从所有 ip 访问它。
我做了
sudo iptables -I INPUT -p tcp --dport 80 -j LOG
我可以看到我的请求出现在
sudo tail -f /var/log/messages
服务器正在运行 nginx,即通过 unix 套接字将请求代理到节点集群。所有请求似乎都来自除我之外的其他 IP 地址。而且只有 HTTP/HTTPS。所以一切似乎都运行良好,但我无法从本地开发机器通过 HTTP/HTTPS 连接,SSH 工作正常。
iptables 是空的
$ iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
我不知道是什么阻止了我的请求。它让我发疯,我花了好几个小时才弄明白,却不知道这是怎么回事。任何人?
更新
似乎 TCP 连接卡在 SYN_RECV 状态。不知道根本原因。
$ netstat -atupen
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 vm.vm.vm.vm:80 my.my.my.my:8857 SYN_RECV 0 0 -
vm.vm.vm.vm -> aws 内部 IP 地址
my.my.my.my -> 我当前的 IP 地址
解决方案
无论如何,您的实例是否在具有一些自定义 ACL 的 VPC 中?
SYN_RECV 表示第一个 SYNC 和 SYN/ACK 正确通过了防火墙,因此您可能想调查为什么您的客户端无法发送最后一个 ACK。
您的计算机/路由器上是否有某种防火墙,或者您的网络存在连接问题?
亲切的问候
推荐阅读
- ansible - Ansible 寄存器变量未定义
- python - IndexError:字符串索引超出范围 - 找出一个字母是否在字符串中
- mysql - 为什么这个 MySQL CREATE TABLE 语句失败?
- python - 用于后处理 vtu 或 pvd 文件的脚本
- reactjs - React:如果使用三元运算符在 Api 中没有图像,则显示消息。获取解析错误:意外令牌
- python - Pandas 中的 EWMA 协方差矩阵 - 优化
- scala - Dotty 如何决定如何推断/何时扩大联合类型?
- python - 如何在python中绘制未堆叠的表格
- wordpress - 为什么我的 WP 网站将注册页面重定向到登录页面
- angular - Angular TypeError:无法读取属性“toLowerCase”