服务器80端口,DELETE/PUT请求会重置连接?

发布于 2022-09-13 00:16:27 字数 787 浏览 48 评论 0

遇到的问题
最近搭建项目开发测试环境,使用nginx代理,因为比较简单直接使用默认的80端口,GET/POST都很正常,但是在调用DELETE请求时接收不到Response。
环境
OS:Centos 7.8
nginx:docker部署的最新版本nginx,映射80端口
对比应用:springboot 2.2.5 web应用,代替nginx运行于80端口
排查过程
1.get/post正常,delete/put nginx未打印日志(错误日志也没有);
2.越过nginx的80端口,直接调用后台服务正常;
3.在我本地curl调用nginx 80端口的delete方法,提示connection was reset;
4.在nginx所在服务器上直接curl调用,正常返回;
5.修改nginx监听端口到非80端口,正常;
6.在80端口启动一个web服务,delete/put同样提示connection was reset;
结论
经过上面排查,可以确定问题与80端口有很强的关联,目前看来与监听此端口的服务关联性不强。
疑惑
造成这个问题的原因是什么?
1.服务器未开启防火墙,虽然外部安全策略不清楚,但外部限制的可能性比较小;
2.是否是服务器操作系统对80端口进行了限制,如何查看;
3.应用服务的问题,可能性不大但不排除,nginx没打印日志,所以请求信息可能还没到达应用层。
想请大佬们提供下排查的思路,当然如果某位大神知道原因就太好了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

昔梦 2022-09-20 00:16:27

1:查看nginx是否对$request_method 做过限制
2:如果还是不行 也有可能是程序里面做了限制

情魔剑神 2022-09-20 00:16:27

看一下nginx配置是不是允许delete方法.

玩物 2022-09-20 00:16:27

你的服务器前端绝对有一个负载均衡服务或其他代理服务,你看下如果是阿里云的话,ip是不是绑在slb上,然后做了端口映射到你服务器。
另外 get post delete方法是http协议规定的请求方法,和nginx无关。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文