再次优化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.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
<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="Upload"/>
<input type="hidden" name="test" value="value"/>
</form>
</body>
</html>
4.测试:
PS:不太熟悉 wordpress 下如何显示html代码·很多代码都被隐藏不显示,html 代码部分显示不全。
from:http://deidara.blog.51cto.com/400447/389873
再次优化NGINX+php-fpm上传的更多相关文章
- Nginx的Upload上传模块
前段时间做一个项目,需要上传文件,差不多需要20M左右,普通用php处理会比较麻烦,经常超时,而且大量占用资源.于是搜索了下,决定用nginx的upload上传模块来处理. 你可以在这里:http:/ ...
- h5 + nginx + php 视频上传之突破文件大小受限的解决办法
一.环境: CentOS 6.8 nginx 1.8.0 php 7.0.10 二.背景 基于 nginx + php 的 h5 项目,上传视频的时候,如果视频太大,会上传失败. 三.正文 一份视频传 ...
- Nginx反向代理上传大文件报错(failed to load resource : net :: ERR_CONNECTION_RESET)
转自: https://blog.csdn.net/kinginblue/article/details/50753271?locationNum=14&fps=1 Nginx反向代理上传大文 ...
- nginx代理图片上传以及访问
nginx代理图片上传 首先需要利用nginx代理图片访问参考 https://www.cnblogs.com/TJ21/p/12609017.html 编写接受文件的controller @Post ...
- nginx实现文件上传和下载
nginx实现文件上传和下载 发布时间:2020-06-05 16:45:27 来源:亿速云 阅读:156 作者:Leah 栏目:系统运维 这篇文章给大家分享的是nginx实现文件上传和下载的方法.小 ...
- nginx代理图片上传以及访问 nginx 图片上传完整版
nginx代理图片上传 首先需要利用nginx代理图片访问参考 https://www.cnblogs.com/TJ21/p/12609017.html 编写接受文件的controller 1 @Po ...
- 分布式文件系统 - FastDFS 配置 Nginx 模块及上传测试
也不说废话,直接干 上一篇 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署 中安装了 FastDFS 后,并配置启动了 Tracker 和 Storage 服务,已经可以上传文件 ...
- [svc]nginx限制客户端上传附件的大小
300 行 python 代码的轻量级 HTTPServer 实现文件上传下载 系统环境 [root@n1 conf]# cat /etc/redhat-release CentOS Linux re ...
- 让nginx支持文件上传的几种模式
文件上传的几种不同语言和不同方法的总结. 第一种模式 : PHP 语言来处理 这个模式比较简单, 用的人也是最多的, 类似的还有用 .net 来实现, jsp来实现, 都是处理表单.只有语言的差别, ...
随机推荐
- JS+html实现简单的飞机大战
摘要:通过原生的js+html实现简单的飞机大战小游戏效果,如图所示: 实现代码如下: 1.自己的飞机实现 飞机html: <!DOCTYPE html> <html lang=&q ...
- List 随机排序
List<T> l = new List<T>(); l = l.Select(a => new { a, newID = Guid.NewGuid() }).Order ...
- Apache监控
Apache性能监控 http://www.cnblogs.com/fnng/archive/2012/11/11/2765463.html 要监控apache的性能,我们需要修改配置文件,允许查看a ...
- 关于Redis的一些常识
http://blog.csdn.net/mengxianhua/article/details/8961713 关于Redis的一些常识 2013-05-22 18:00 13315人阅读 评论(0 ...
- 剑指offer-面试题22.栈的压入,弹出序列
题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第 二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等. 例如序列1.2.3.4.5是某栈的压栈序列,序列4.5.3.2.1 是该压栈 ...
- python选择排序实现与C选择排序实现
python代码: #coding=utf-8 if __name__=="__main__": arr=[3,2,1,7,11,4,5,8] print "Before ...
- HDOJ2553-N皇后问题(DFS)
N皇后问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- Linux中shell文件操作大全
1.创建文件夹#!/bin/shmkdir -m 777 "%%1" 2.创建文件#!/bin/shtouch "%%1" 3.删除文件#!/bin/shrm ...
- No.26
"信是未见之事的实底,是所望之事的确据".
- http://home.cnblogs.com/
说起编辑器,可能大部分人要推荐的是Vim和Emacs,本人用过Vim,功能确实强大,但是不是很习惯,之前一直有朋友推荐SUblime Text 2这款编辑器,然后这段时间就试了一下,就深深地喜欢上这款 ...