再次优化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 代码部分显示不全。



本文转自Deidara 51CTO博客,原文链接:http://blog.51cto.com/deidara/389873,如需转载请自行联系原作者

相关文章
|
2月前
|
数据采集 人工智能 程序员
PHP 程序员如何为 AI 浏览器(如 ChatGPT Atlas)优化网站
OpenAI推出ChatGPT Atlas,标志AI浏览器新方向。虽未颠覆现有格局,但为开发者带来新机遇。PHP建站者需关注AI爬虫抓取特性,优化技术结构(如SSR、Schema标记)、提升内容可读性与语义清晰度,并考虑未来agent调用能力。通过robots.txt授权、结构化数据、内容集群与性能优化,提升网站在AI搜索中的可见性与引用机会,提前布局AI驱动的流量新格局。
128 8
|
10月前
|
应用服务中间件 PHP nginx
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
简介: 本教程介绍如何基于 Dragonwell 的 Ubuntu 镜像创建一个运行 Nginx 的 Docker 容器。首先从阿里云容器镜像服务拉取基础镜像,然后编写 Dockerfile 确保 Nginx 作为主进程运行,并暴露 80 端口。最后,在包含 Dockerfile 的目录下构建自定义镜像并启动容器,确保 Nginx 在前台运行,避免容器启动后立即退出。通过 `docker build` 和 `docker run` 命令完成整个流程。
378 25
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
|
10月前
|
应用服务中间件 PHP nginx
当你的nginx服务器和php服务器不在一起的时候,这个nginx 的root目录问题
两个服务器的网站代码目录需要对齐,docker容器里面也是一样
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
713 3
|
存储 缓存 搜索推荐
优化PHP数组性能
优化PHP数组性能
187 8
|
监控 PHP Apache
优化 PHP-FPM 参数配置:实现服务器性能提升
优化PHP-FPM的参数配置可以显著提高服务器的性能和稳定性。通过合理设置 `pm.max_children`、`pm.start_servers`、`pm.min_spare_servers`、`pm.max_spare_servers`和 `pm.max_requests`等参数,并结合监控和调优措施,可以有效应对高并发和负载波动,确保Web应用程序的高效运行。希望本文提供的优化建议和配置示例能够帮助您实现服务器性能的提升。
681 3
|
tengine 应用服务中间件 Linux
Tengine、Nginx安装PHP命令教程
要在阿里云Linux上安装PHP,请先更新YUM源并启用PHP 8.0仓库,然后安装PHP及相关扩展。通过`php -v`命令验证安装成功后,需修改Nginx配置文件以支持PHP,并重启服务。最后,创建`phpinfo.php`文件测试安装是否成功。对于CentOS系统,还需安装EPEL源和Remi仓库,其余步骤类似。完成上述操作后,可通过浏览器访问`http://IP地址/phpinfo.php`测试安装结果。
|
缓存 前端开发 JavaScript
nginx的优化
nginx的优化
|
设计模式 算法 数据库连接
PHP中的设计模式:如何优化你的代码结构
在本文中,我们将深入探讨PHP中的设计模式。设计模式是解决常见软件设计问题的最佳实践。它们不是具体的代码,而是一种编程经验的总结。掌握设计模式可以帮助你写出更高效、灵活和可维护的代码。本文将介绍几种常见的设计模式,并通过示例展示如何在PHP项目中应用这些模式。无论你是PHP初学者还是有经验的开发者,都能从本文中获得启发和实用的技巧。
|
缓存 监控 测试技术
php-fpm优化调优
php-fpm优化调优
334 4