首页 > 代码库 > 再次优化NGINX+php-fpm上传
再次优化NGINX+php-fpm上传
上次写了一篇nginx+php-fpm优化上传,一位博友留言介绍了,第三方nginx upload module
http://www.grid.net.ru/nginx/upload.en.html
看了一下,功能蛮强大的,所以就记录下来·基本没什么变化,在原有的例子上稍加了下修改,加了一个限速功能。在 0.8.X 版本上编译出出错,他官方也有写:
For nginx versions other than 0.7.44-51
但是我在最新版本 nginx-0.7.67.tar.gz 编译也没问题。 下载nginx:wget http://www.nginx.org/download/nginx-0.7.67.tar.gz 下载模块:wget http://www.grid.net.ru/nginx/download/nginx_upload_module-2.0.12.tar.gz 1.下载编译安装nginx_upload_module
nginx $> tar zxvf nginx-0.7.67.tar.gznginx $> tar zxvf nginx_upload_module-2.0.12.tar.gznginx $> cd nginx-0.7.67#关掉不需要的模块,节省资源开支俗话说越简洁越稳定~nginx $> ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --without-http_memcached_module --without-http_empty_gif_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --add-module=/root/nginx_upload_module-2.0.12nginx $> makenginx $> make install
2.创建配置文件:
nginx $> cd /usr/local/nginx/conf
nginx $> vim nginx.confuser www www;worker_processes 1;error_log logs/error.log notice;pid logs/nginx.pid;working_directory /usr/local/nginx;worker_rlimit_nofile 65535;events { use epoll; worker_connections 1024;}http { include mime.types; default_type application/octet-stream; client_max_body_size 1024m; server { listen 80; server_name 192.168.6.162; index index.html index.htm index.php; root /var/www; # Upload form should be submitted to this location location /upload { # Pass altered request body to this location upload_pass /upload.php; # Store files to this directory # The directory is hashed, subdirectories 0 1 2 3 4 5 6 7 8 9 should exist upload_store /var/www/webdata; # Allow uploaded files to be read only by user upload_store_access user:r; # 限制上传速度 upload_limit_rate 128k; # Set specified fields in request body upload_set_form_field "${upload_field_name}_name" $upload_file_name; upload_set_form_field "${upload_field_name}_content_type" $upload_content_type; upload_set_form_field "${upload_field_name}_path" $upload_tmp_path; # Inform backend about hash and size of a file upload_aggregate_form_field "${upload_field_name}_md5" $upload_file_md5; upload_aggregate_form_field "${upload_field_name}_size" $upload_file_size; upload_pass_form_field "^submit$|^description$"; } # Pass altered request body to a backend location ~ \.php { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } }}
3.创建测试代码
nginx $> cd /var/wwwnginx $> mkdir webdatanginx $> chown www.www webdata
nginx $> vim upload.php< ?php echo "REQUEST :"; echo "Upload: " . $_REQUEST["file_name"] . ""; echo "Type: " . $_REQUEST["file_content_type"] . ""; echo "path: " . $_REQUEST["file_path"] . ""; echo "MD5 " . $_REQUEST["file_md5"] . ""; echo "Size: " . ($_REQUEST["file_size"] / 1024) . ""; echo "_POST:"; echo "Name : " . $_POST["file_name"] . ""; echo "Type : " . $_POST["file_content_type"] . ""; echo "Path : " . $_POST["file_path"] . ""; echo "MD5 : " . $_POST["file_md5"] . ""; echo "Size : " . ($_POST["file_size"] / 1024) . "Kb";?>
nginx $> vim upload.html<html><body><h2>Select files to upload</h2><form name="upload" enctype="multipart/form-data" action="/upload" method="post"><input type="file" name="file"/><br /><input type="submit" name="submit" value="http://www.mamicode.com/Upload"/><input type="hidden" name="test" http://www.mamicode.com/value="value"/></form></body></html>
4.测试: PS:不太熟悉 wordpress 下如何显示html代码·很多代码都被隐藏不显示,html 代码部分显示不全。
from:http://deidara.blog.51cto.com/400447/389873
再次优化NGINX+php-fpm上传
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。