Nginx代理POST失败GET成功

问题描述 投票:0回答:1

我让nginx作为代理在.net核心应用程序之前运行。该网页已正确投放,所有GET请求均正常运行。但是,所有POST请求都失败,并显示404。

配置:

location ~ / {
  proxy_pass        http://127.0.0.1:5000;

  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";

  client_max_body_size 15M;

  more_clear_input_headers 'Accept-Encoding';
}

错误日志:

111.111.111.111 - - [25/Feb/2020:19:56:37 +0000] "GET /Content/favicon.png HTTP/2.0" 200 1003 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0"
111.111.111.111 - - [25/Feb/2020:19:56:51 +0000] "POST /api/encode/ASCII/dGVzdA== HTTP/2.0" 400 463 "https://example.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0"

我在做什么错?

nginx reverse-proxy nginx-reverse-proxy
1个回答
0
投票

解决方案是清除Connection标头,或将其设置为keep-alive

location ~ / {
  proxy_pass        http://127.0.0.1:5000;

  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection 'keep-alive';

  client_max_body_size 15M;

  more_clear_input_headers 'Accept-Encoding';
}
© www.soinside.com 2019 - 2024. All rights reserved.