POST 参数不是从我的反向代理传递到我的后端服务器
Posted
技术标签:
【中文标题】POST 参数不是从我的反向代理传递到我的后端服务器【英文标题】:POST params are not passes from my reverse proxy to my backend server 【发布时间】:2019-10-01 12:09:33 【问题描述】:我有一个提供静态 Web 内容的 nginx 服务器和一个与我的后端 API 交换的反向代理。 我用 certbot 配置了我的 SSL 证书。 我的问题是 POST 参数没有从我的反向代理传递到我的后端服务器。 我的 GET 参数已正确检索。
我已经在 Nginx 中记录了我的 POST 请求 "POST /Users/signup HTTP/2.0" 500 1181 "https://MYDNS/signup" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/74.0.3729.131 Safari/537.36" [ \x22用户名\x22:\x22testet\x22]
我的nginx配置文件
server
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name MYDNS;
root /var/www/MYDNS;
ssl_certificate /etc/letsencrypt/live/MYDNS/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/MYDNS/privkey.pem;
error_log /var/log/nginx/MYDNS.error.log warn;
access_log /var/log/nginx/MYDNS.postdata-access.log post_logs;
location /Users
proxy_pass http://127.0.0.1:3001;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
server
listen 80;
listen [::]:80;
server_name MYDNS;
return 301 https://MYDNS$request_uri;
在我的后端服务器中 在我的 app.js 文件中
var Users =require('./routes/Users');
app.use('/Users',Users);
在我的路由/Users.js 文件中
router.post('/signin', function (req, res, next)
console.log(req.params.username); --> undefined
console.log(req.body.username); --> undefined
);
我也尝试过改变 proxy_pass http://127.0.0.1:3001 到 proxy_pass http://localhost:3001
在我的服务器上,我已经测试过了
curl -i -H "Content-Type: application/json" -H "Accept: application/json" -X POST -d '"username": "this_is_param_1"' http://localhost:3001/Users/signin
但结果是一样的。 请问有什么办法吗?
【问题讨论】:
【参考方案1】:我犯了一个错误并在我的后端服务器中禁用了 bodyParser 现在好了
【讨论】:
以上是关于POST 参数不是从我的反向代理传递到我的后端服务器的主要内容,如果未能解决你的问题,请参考以下文章
Spring post 不工作 - 我的 json 是从前端发送的,我可以在日志中看到它,但我的后端得到 Null
我无法将我的 v-model 数据传递到我的后端以获取 vue.js 中的单选按钮类型,如何将选中的单选按钮值传递给我的后端?
nginx:nginx反向代理在服务器上工作,但在本地主机上不工作