Почему я получаю "пустой ответ от сервера" от AWS ECS?
У меня есть веб-сервис в образе Docker, в который я пытаюсь загрузить два файла: файл 6 МБ и файл 18 МБ.
При запуске в моем локальном сервисе Docker оба файла загружаются нормально.
С таким же изображением в ECS успешно загружается только файл размером 6 МБ.
Успешная загрузка 6 МБ:
C:\>curl -v -F file=@6mb.zip http://52.xxx.xxx.xxx:5000/api/v1/add_model
* Trying 52.xxx.xxx.xxx...
* TCP_NODELAY set
* Connected to 52.xxx.xxx.xxx (52.xxx.xxx.xxx) port 5000 (#0)
> POST /classifierService/api/v1/add_model HTTP/1.1
> Host: 52.xxx.xxx.xxx:5000
> User-Agent: curl/7.57.0
> Accept: */*
> Content-Length: 6526998
> Content-Type: multipart/form-data; boundary=------------------------51a3998e86a60e5c
> Expect: 100-continue
>
* Done waiting for 100-continue
< HTTP/1.1 200 OK
< Content-Type: application/json
< Content-Length: 68178
<
<response body>
Файл 18 МБ, однако, завершается ошибкой с пустым ответом.
Неудачная загрузка 18 МБ:
C:\>curl -v -F file=@18mb.zip http://52.xxx.xxx.xxx:5000/api/v1/add_model
* Trying 52.xxx.xxx.xxx...
* TCP_NODELAY set
* Connected to 52.xxx.xxx.xxx (52.xxx.xxx.xxx) port 5000 (#0)
> POST /classifierService/api/v1/add_model HTTP/1.1
> Host: 52.xxx.xxx.xxx:5000
> User-Agent: curl/7.57.0
> Accept: */*
> Content-Length: 18436586
> Content-Type: multipart/form-data; boundary=------------------------65717bbb45c3da52
> Expect: 100-continue
>
* Done waiting for 100-continue
* Empty reply from server
* Connection #0 to host 52.xxx.xxx.xxx left intact
curl: (52) Empty reply from server
Есть идеи, что может быть не так, или как я могу отладить эту проблему?
1 ответ
Есть много причин, которые могут вызвать это. Наиболее очевидной из которых является среда, которую вы настраиваете на сервере. Многие (если не все) веб-фреймворки устанавливают максимальные ограничения на загрузку, чтобы предотвратить атаки DoS и другие подобные эксплойты.
PHP (например) устанавливает ограничение в 10 Мб, я считаю. Вам нужно будет изменить соответствующие корректирующие параметры php.ini, как показано ниже:
memory_limit = 32M
upload_max_filesize = 10M
post_max_size = 20M
... или вы можете изменить значения в файле.htaccess:
php_value upload_max_filesize 10M
php_value post_max_size 20M
php_value memory_limit 32M
В конечном счете, нам нужно больше информации об окружающей среде, чтобы дать более конкретный ответ.