php - 为什么 POST 请求可以在从 NGINX 到 PHP 的途中更改为 GET
问题描述
我有下一个非常奇怪的情况:
- 向服务器发送 POST 请求。
- 在 nginx 日志中,我看到类似的内容:IP-ADDRESS - ce5c8fb7-0a40-4c4e-9b8e-779cae54d4ad-1522849217932 [11/Jun/2018:11:37:38 +0000] "POST /unsubscribe HTTP/1.1" 400 69 " -" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36"
- 因此,nginx 看到了类似 POST 的请求
- 但如果我这样做
echo $_SERVER['REQUEST_METHOD']
,我将有“GET”作为输出。 - 这只发生在一个端点“/取消订阅”上。对于所有其他端点 POST 请求都可以正常工作。
- 配置中没有与“取消订阅”字相关的规则。
我确实尝试了很多变体,测试,尽可能关闭缓存。但仍然是相同的行为。可能有人知道在这种情况下尝试什么会有好处,或者之前有人遇到过同样的问题?
PS 在服务器上我有 Ubuntu + Nginix + PHP 7.0。不确定,但可能与 PHP 版本有关,因为前段时间我们从 5.6 升级到 7.0
解决方案
推荐阅读
- java - 如何防止在java中打开同一类的新任务应用程序
- python - 如何在 Django 中注册时将特定组分配给用户
- build - BTDF 构建问题 BizTalk
- javascript - 当 VAPID 仅用于识别服务器推送服务时,为什么需要公共 VAPID 密钥在浏览器端创建订阅对象?
- c - 我不明白这次崩溃
- grep - grep 命令未检索完整功能
- c - 如何从 Linux 中多线程进程的信号处理程序中获取正确的回溯?
- swift - 为什么动画视图从错误的位置开始?
- elasticsearch - Kibana:计算具有相同id字段的count(a)和count(a')之间的差异
- rust - 传递对函数参数的引用(书 v1)