配置nginx重定向文件太大(413)

时间:2015-06-21 16:01:18

标签: php symfony nginx

我的环境:
- 使用Symfony 2运行的后端应用程序 - Nginx 1.8.0
- Centos 6.5
- php-fpm

这是我的nginx conf:

server {
    listen 443;
    server_name demo.example.com;
    root /usr/share/nginx/html/crowdfunding/web;

    ssl on;
    ssl_certificate /etc/nginx/ssl/xxxxx.crt;
    ssl_certificate_key /etc/nginx/ssl/xxxxx.key;

    recursive_error_pages off;
    error_page 413 = $uri/413;

    error_log /var/log/nginx/example_error.log;
    access_log /var/log/nginx/example_access.log;

    location / {
        try_files $uri /app.php$is_args$args;
    }


    # PROD
    location ~ ^/app\.php(/|$) {
        internal;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        fastcgi_index  index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS on;
        fastcgi_intercept_errors on;
    }
}

我有一个上传文件输入的页面:http://demo.example.com/fr/member/edit 我想要的最大尺寸为500ko 当我尝试上传2Mo文件时,我的错误文件中出现此错误"客户端意图发送过大的身体" 然后你可以在网页浏览器的角落看到上传正在运行,当它实现100%重定向到demo.example.com/fr/member/edit 并重新启动上传...直到nginx提示错误(可能是关于时间过程)

我想要的是什么:
当nginx检测到这个时:"客户端意图发送太大的身体"然后停止上传文件并重定向到http://demo.example.com/fr/member/edit/413(这是一条应该进入#prod的路线) 我只是想用一个nginx

将413重定向到我的应用程序的另一个页面

感谢您的帮助,并问我是否需要更多信息。

更新1: 这里是我的symfony 2表单

$builder->add('image', 'file', array('label' => 'general.image', 'required' => false, 'constraints' => array(
            new File(array(
                'maxSize' => '500k',
                'mimeTypes' => array(
                    'image/png',
                    'image/jpeg',
                    'image/pjpeg',
                    'image/gif',
                    'image/bmp',
                )
            ))
        )));

更新2: 在我的php.ini中我设置了这个:

upload_max_filesize = 500k
post_max_size = 500k

1 个答案:

答案 0 :(得分:0)

尝试将以下行添加到http或您的案例服务器部分

client_max_body_size 2M;

不要忘记调整你的限制。保存文件,realod nginx,它应该正常工作。