Параметры POST не передаются с моего обратного прокси на мой внутренний сервер

У меня есть сервер nginx, который предоставляет статический веб-контент и обратный прокси-сервер, который обменивается с моим внутренним API. Я настроил с помощью certbot свой сертификат SSL. Моя проблема в том, что параметры POST не передаются с моего обратного прокси на мой внутренний сервер. Мои параметры GET извлекаются правильно.

Я зарегистрировал свой запрос POST в Nginx "POST / Users / signup HTTP / 2.0" 500 1181 "https://MYDNS/signup "" Mozilla / 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit / 537.36 (KHTML, например, Gecko) Chrome / 74.0.3729.131 Safari / 537.36 "[{\ x22username \ 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);

В моем файле routes / 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

но результат тот же. Есть идеи, пожалуйста?


person JEKES    schedule 14.05.2019    source источник


Ответы (1)


Я сделал ошибку и отключил bodyParser на своем внутреннем сервере. Теперь все в порядке.

person JEKES    schedule 15.05.2019