87 lines
3.0 KiB
Markdown
87 lines
3.0 KiB
Markdown
# Исправление ошибки 413 при загрузке альбомов
|
||
|
||
## Проблема
|
||
При загрузке ZIP альбомов возникает ошибка 413 "Request Entity Too Large", даже после увеличения лимитов в Express и multer.
|
||
|
||
## Решение
|
||
|
||
Ошибка 413 возникает на уровне Nginx, который проксирует запросы к backend. Нужно увеличить `client_max_body_size` в конфигурации Nginx.
|
||
|
||
### Вариант 1: Если используется Nginx для проксирования к backend
|
||
|
||
Добавьте или увеличьте `client_max_body_size` в конфигурации Nginx:
|
||
|
||
```nginx
|
||
server {
|
||
listen 80;
|
||
server_name your-domain.com;
|
||
|
||
# Увеличить лимит загрузки до 110MB (больше чем на backend для безопасности)
|
||
client_max_body_size 110M;
|
||
|
||
location /api {
|
||
proxy_pass http://localhost:3000;
|
||
proxy_set_header Host $host;
|
||
proxy_set_header X-Real-IP $remote_addr;
|
||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||
proxy_set_header X-Forwarded-Proto $scheme;
|
||
|
||
# Увеличить таймауты для больших загрузок
|
||
proxy_read_timeout 300s;
|
||
proxy_connect_timeout 300s;
|
||
proxy_send_timeout 300s;
|
||
}
|
||
}
|
||
```
|
||
|
||
### Вариант 2: Если используется docker-compose с nginx
|
||
|
||
Обновите `nginx-moderation-production.conf` или создайте отдельный конфиг для основного приложения:
|
||
|
||
```nginx
|
||
# Увеличить лимит загрузки
|
||
client_max_body_size 110M;
|
||
|
||
# Увеличить таймауты
|
||
client_body_timeout 300s;
|
||
client_header_timeout 300s;
|
||
```
|
||
|
||
### Вариант 3: Для production на сервере
|
||
|
||
Если приложение развернуто на сервере, нужно обновить конфигурацию Nginx:
|
||
|
||
1. Отредактируйте конфигурацию:
|
||
```bash
|
||
sudo nano /etc/nginx/sites-available/nakama
|
||
```
|
||
|
||
2. Добавьте или обновите:
|
||
```nginx
|
||
client_max_body_size 110M;
|
||
```
|
||
|
||
3. Проверьте конфигурацию:
|
||
```bash
|
||
sudo nginx -t
|
||
```
|
||
|
||
4. Перезапустите Nginx:
|
||
```bash
|
||
sudo systemctl reload nginx
|
||
```
|
||
|
||
## Проверка
|
||
|
||
После применения изменений попробуйте загрузить ZIP альбом размером до 105MB. Ошибка 413 должна исчезнуть.
|
||
|
||
## Примечание
|
||
|
||
Лимиты должны быть установлены в следующем порядке (от большего к меньшему):
|
||
1. Nginx: `client_max_body_size 110M` (больше всех)
|
||
2. Express: `limit: '105mb'`
|
||
3. Multer: `fileSize: 105 * 1024 * 1024`
|
||
|
||
Это обеспечивает, что запрос доходит до backend без ошибок.
|
||
|