php上传优化,再次优化NGINX+php-fpm上传

上次写了一篇

http://www.grid.net.ru/nginx/upload.en.html

看了一下,功能蛮强大的,所以就记录下来·基本没什么变化,在原有的例子上稍加了下修改,加了一个限速功能。在 0.8.X 版本上编译出出错,他官方也有写:

Forversions 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.gz

nginx $> tar zxvf nginx_upload_module-2.0.12.tar.gz

nginx $> 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.12

nginx $> make

nginx $> make install

2.创建配置文件:

nginx $> cd /usr/local/nginx/conf

nginx $> vim nginx.conf

user 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/www

nginx $> mkdir webdata

nginx $> 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

Select files to upload

4.测试: 123.jpg PS:不太熟悉 wordpress 下如何显示html代码·很多代码都被隐藏不显示,html 代码部分显示不全。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值