我的環境:
- 後端應用與Symfony的運行2
- Nginx的1.8.0
- Centos的6.5
- PHP-FPM
配置nginx的對文件過大重定向(413)
這裏是我的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 ,我要的是500的最大大小ko這個圖像 當我嘗試上傳一個2Mo文件時,我在我的錯誤文件「客戶端打算髮送太大的身體」 這個錯誤,那麼你可以在網頁瀏覽器角落看到上傳運行,當它達到100%被重定向到demo.example.com/fr/member/edit 並重新啓動上傳...直到nginx的提示錯誤(可能是關於時間過程)
什麼,我想:
當nginx的檢測這樣的:「客戶端打算髮送太大的身體「,然後停止上傳文件並重定向到http://demo.example.com/fr/member/edit/413(這是一條應該進入#prod的路線) 我只是想將413重定向到我的應用程序的其他頁面,使用nginx
感謝您的幫助,並詢問我是否需要更多信息。
更新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
這似乎是一個PHP知名的問題。看看這個問題:[http://stackoverflow.com/questions/2133652/how-to-gracefully-handle-files-that-exceed-phps-post-max-size](http://stackoverflow.com/questions/2133652 /如何優雅地處理文件 - 超過-psps-post-max-size) – DonCallisto
我不認爲這個解決方案會停止上傳文件,或者我不明白。 – anthony