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