У меня есть два приложения nodejs, сидящие за обратным прокси-сервером nginx. Вот моя конфигурация nginx,
#main_api
место расположения / {
proxy_pass http://localhost:3000;
}
#chat_api
расположение /socket.io/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Хост $http_host;
proxy_set_header X-NginX-Proxy false;
proxy_pass http://localhost:3001/socket.io/;
прокси_перенаправление выключено;
прокси_http_версия 1.1;
proxy_set_header Обновить $http_upgrade;
proxy_set_header Соединение "обновление";
}
....
// ssl-материалы
Я могу отправлять обычные HTTP-запросы с телом JSON. Но когда я посылаю multipart/formdata
, nginx удаляет поля из моего тела запроса. Мой запрос содержит несколько текстовых полей и файл. Если я получу доступ HTTPS
версия моего URL-адреса API, только файл игнорируется nginx, но когда HTTP
версии, текстовые поля также игнорируются, и мой ПУБЛИКОВАТЬ
запрос конвертируется в ПОЛУЧАТЬ
запрос.
Вот мой журнал доступа к nginx,
103.160.233.51 - - [28/May/2022:07:23:51 +0000] "POST /api/files/upload_dp HTTP/1.1" 500 26 "-" "PostmanRuntime/7.29.0"
103.160.233.51 - - [28/May/2022:07:24:04 +0000] "POST /api/files/upload_dp HTTP/1.1" 301 178 "-" "PostmanRuntime/7.29.0"
103.160.233.51 - - [28/May/2022:07:24:04 +0000] "GET /api/files/upload_dp HTTP/1.1" 401 43 "http://myapiurl.com/api/files/upload_dp" " ПочтальонРунтайм/7.29.0"
И журнал ошибок nginx пуст.
Какую опцию конфигурации nginx мне не хватает?