Ограничить размер файла загрузки на URL

У меня есть сайт с Play! Framework, который я показываю с NGinx, используя ssl.

Все работает нормально, но я хотел бы установить ограничение на загрузку файлов на основе URL:

  • Если пользователь загрузит файл в * / pages / ** (/ pages / или / page / {id} / edit), я ограничу размер до 10Mo (это будет zip-архив)
  • Если пользователь загрузит файл в * / images / ** (/ images / или / images / {id} / edit), я ограничу размер до 2Mo (это будут только изображения)

Вот где я застрял:

  1. Я видел client_max_body_size директива, это именно то, что я хочу, но я должен указать для каждого местоположения {}, конфигурации proxy_*?
  2. У меня есть конкретное сообщение для отображения, если пользователь достигает разрешенной квоты, в моем приложении (расположено по адресу /errors/413). Если я использую браузер напрямую, он работает. Но, используя приведенную ниже конфигурацию, я получил " 504 Gateway Time-out ". Зачем?

Вот мой файл конфигурации:

server {
    listen    443;

    server_name www.mywebsite.com;

    access_log  /var/log/nginx/mywebsite_access.log;
    error_log   /var/log/nginx/mywebsite_error.log;

    ssl  on;
    ssl_certificate  /etc/nginx/ssl/cert.pem;
    ssl_certificate_key  /etc/nginx/ssl/cert.key;
    ssl_session_timeout  5m;

    ssl_protocols  SSLv3 TLSv1;

    ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP:!kEDH;
    ssl_prefer_server_ciphers   on;

    location / {
        proxy_pass         http://127.0.0.1:9010;
        proxy_redirect     off;

        client_max_body_size 2m;
        error_page         413 =200 /errors/413;

        proxy_set_header   X-Real-IP          $remote_addr;
        proxy_set_header   Host               $host;
        proxy_set_header   X-Forwarded-Ssl    on;
        proxy_set_header   X-Forwarded-For    $proxy_add_x_forwarded_for;
    }
}

Большое спасибо за Вашу помощь!:)

1 ответ

Обратитесь к документации Nginx, директива client_max_body_size может также использоваться в блоке сервера.

Другие вопросы по тегам