Продукты Р7
Корпоративный сервер 2024
Корпоративный сервер 2024
Сервер документов
Сервер документов
Редакторы
Редакторы
Корпоративный сервер 2019
Корпоративный сервер 2019
Графика
Графика
Команда
Команда
Мобильные редакторы
Мобильные редакторы
Облачный офис
Облачный офис
Почта
Почта
Органайзер
Органайзер
Дополнительно
Часто задаваемые вопросы
Разработчикам
Интеграции
Новые возможности

Не загружаются файлы размером более 1 МБ в Р7-Команда (web, desktop, android, ios) — api/v2/file/undefined

Обновлено: 15.12.25

Описание проблемы

На серверах, развернутых по инструкции Установка Р7-Команда за NAT и интеграция с SIP, для доступа к серверу используется проксирующий сервер NGINX, при попытке отправить файл размером более 1 МБ передача данных не происходит. Если же файл является изображением, то отправляется только его сжатая превью-версия.

Решение и подробное описание проблемы

Симптомы

При отправке фотографии из мобильного клиента пользователь-отправитель не видит никаких ошибок.

Пример:

 

Однако получатель или сам отправитель в другом клиенте (например, в веб-версии или desktop-приложении) не может открыть полноразмерный файл. В чате отображается только превью — сжатая версия изображения.

Пример:

 

При попытке открыть превью для просмотра в полном размере пользователь видит окно бесконечной загрузки.

Пример:

 

В консоли разработчика браузера (DevTools) отображается ошибка 404 (Not Found) при обращении к файлу.

Пример:

 

Failed to load resource: the server responded with a status of 404 () /api/v2/file/undefined:1

Причина

Проблема заключается в стандартных настройках NGINX. По умолчанию проксирующий сервер ограничивает максимальный размер тела запроса клиента значением в 1 МБ. В используемой конфигурации это ограничение не было изменено, из-за чего NGINX блокирует загрузку файлов, превышающих этот лимит.

В этом файле отсутствует директива, отвечающая за максимальный размер загружаемого файла.

server {
listen 80;
server_name r7team.volav.ru;
server_tokens off;

return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name r7team.volav.ru;
ssl_certificate /etc/ssl/team/rootfullchainvolav.pem;
ssl_certificate_key /etc/ssl/team/volav.key;
ssl_session_timeout 24h;
ssl_session_tickets on;
ssl_prefer_server_ciphers on;
ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
add_header Strict-Transport-Security "max-age=31536000;";

location / {
proxy_pass https://172.16.16.13;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
real_ip_header X-Forwarded-For;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass_header P3P;
}
}

Решение

Необходимо внести изменения в конфигурационный файл проксирующего сервера NGINX (/etc/nginx/conf.d/r7team.conf в примере).

В блок server, который обрабатывает HTTPS-трафик (порт 443), добавьте директиву client_max_body_size.

Пример

client_max_body_size 0M;

Важно

Рекомендуется для прокси сервера использовать 0M так как сервисы Р7 Команды и Корпоративного сервера имеют собственные ограничения.

  • 10M — устанавливает лимит размера файла в 10 мегабайт. Вы можете указать любое необходимое значение (например, 100M для 100 МБ);

  • 0 — полностью отключает проверку размера файла.

Итоговая корректная конфигурация:

root@r7team-e:~# cat /etc/nginx/conf.d/r7team.conf
server {
        listen 80;
        server_name r7team.volav.ru;
        server_tokens off;

        return 301 https://$server_name$request_uri;
}
server {
        listen 443 ssl http2;
        server_name r7team.volav.ru;
        ssl_certificate /etc/ssl/team/rootfullchainvolav.pem;
        ssl_certificate_key /etc/ssl/team/volav.key;
        ssl_session_timeout 24h;
        ssl_session_tickets on;
        ssl_prefer_server_ciphers on;
        ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
        add_header Strict-Transport-Security "max-age=31536000;";
        client_max_body_size 0M;
        location / {
                proxy_pass https://172.16.16.13;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                real_ip_header X-Forwarded-For;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_pass_header P3P;
        }
}

После внесения изменений не забудьте перезагрузить конфигурацию NGINX командой:

sudo nginx -s reload

Была ли эта статья полезной?

Поделитесь пожалуйста своим мнением

      В статье есть ошибкиРекомендации не помоглиТекст трудно понятьСодержание статьи не соответствует заголовкуДругое