nginx反向代理POST请求

在使用nginx反向代理POST请求的时候,错误配置情况

location /sms/sendSmsLocal/ {
  proxy_pass http://localhost:10086/sms/sendSmsLocal/;
}

这样配置会出现的问题

  1. 原本发出的请求是POST请求,经过nginx转发以后就会变成GET请求
  2. 原本POST请求携带的请求体经过转发以后会丢失,正确配置代理POST请求
location /sms/sendSmsLocal {
  proxy_pass http://localhost:10086/sms/sendSmsLocal;
  proxy_redirect off;
}
  • location 后边跟的路径不要以 / 结尾
  • 由于nginx代理会将我们的请求拦截后在做一次重定向,在这个过程中我们的请求携带的请求体就会丢失,解决办法就是屏蔽掉转发 通过 proxy_redirect off; 可以解决。