`
willko
  • 浏览: 386698 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

nginx + php-fpm 优化 post 性能

阅读更多
当POST到Web Server的时候,Web Server接收数据后再复制一份数据给FastCGI进程,这样多了一次复制开销和内存使用,比较浪费,POST数据越大越明显(包括上传)。nginx允许以文件的方式来传递,nginx先把浏览器POST过来的数据保存在文件里,当传给FastCGI进程的时候,通过文件路径来传递数据(包括上传),从而提高POST性能。

但是,如果只有nginx是不够的,因为php不支持这种传递数据的方式。所以,必须给php打补丁,php-fpm是php的FastCGI管理器,php-fpm支持这种文件传输数据的方式。

说到这里,不得不说一个事情,在bbs上我见到有人讨论说,nginx不支持post静态文件。
对于,nginx来说如果没设置fastcgi_pass都是静态文件,而不是通过后缀来判断的。而对于不具备处理能力的静态文件,post是没有意义的。又因为nginx支持文件方式传递post数据,而文件的清除可能是由后端程序来处理。允许post静态文件,很容易产生大量垃圾文件。我想,这就是为什么nginx不支持post静态文件的原因了。一是会有问题,二实在是没意义。

php-fpm以及nginx的安装网上比较多,就不重复了,主要是配置nginx方面,nginx 0.5.9以上都支持这个功能。

只需三个参数就可以实现了。
client_body_in_file_only clean;
client_body_temp_path /dev/shm 1 2;
fastcgi_param  REQUEST_BODY_FILE  $request_body_file;


存放的路径可以使用内存文件系统,例如tmpfs、ramdisk之类的。更正确的来说是优化http报文性能,因为http里能发送报文的不只是post方法,只是觉得大家更熟悉post而已。

参考资料:
http://php-fpm.org/
http://wiki.nginx.org/Main
3
0
分享到:
评论

相关推荐

    解决nginx+php-fpm无法上传文件问题.docx

    解决nginx+php-fpm无法上传文件问题 一、nginx配置文件中的client_max_body_size设置 在nginx配置文件中,client_max_body_size指令用于设置客户端能够上传的最大文件大小。默认情况下,该值设置为1M,导致上传大...

    分享nginx+php-fpm实现大文件下载排坑的过程

    在互联网上,下载大文件是一项常见的需求,但也是存在一定挑战的任务,尤其是当涉及到使用Nginx和PHP-FPM来实现时。当服务器配置不当,或者代码实现存在漏洞时,很容易导致下载过程中出现问题,例如下载中断、下载...

    php-fpm中文文档.pdf

    - **优化的上传支持**:PHP-FPM优化了大文件上传和POST请求的处理,通过将请求体写入临时文件,然后仅通过文件名传递给FastCGI协议,减少了内存占用和处理时间。这项优化需要Web服务器(如Nginx)的支持。 总的来说...

    CentOS+Nginx+PHP+MySQL配置详解.pdf

    CentOS+Nginx+PHP+MySQL 配置详解 在本文中,我们将详细介绍如何在 CentOS 平台上安装和配置 Nginx、PHP 和 MySQL,实现一个完整的 Web 服务器环境。 一、Nginx 介绍 Nginx 是一个高性能的 HTTP 和反向代理服务器...

    Web服务器三剑客运维配置实战 Nginx+JVM+Tomcat+HTTP协议 视频教程+笔记+课件+资料

    - **性能优化**:通过调整Nginx配置参数,提高与PHP-FPM的协同工作性能。 ##### 3.2 反向代理与负载均衡 - **反向代理原理**:作为客户端和目标服务器之间的中间层,为客户端提供服务。 - **负载均衡策略**:轮询...

    ansible-php7-fpm:XenialPHP7角色

    php7-fpm Ansible角色 该角色将在Xenial(16.04)中安装php7-fpm 要求 必需的软件包(自动安装): php7-fpm php7.0-opcache php-apcu php7.0-gd php7.0-curl php-梨 php7.0-mysql 角色变量 ...

    Linux下zendframework框架nginx配置文件

    你可以调整以下参数以优化性能和资源使用: - `listen`:设置监听的socket或端口,与Nginx中的`fastcgi_pass`匹配。 - `pm` 和 `pm.max_children`:控制PHP-FPM的工作模式(如静态、动态)和最大子进程数量,以...

    edusoho-linux-php-nginx安装教程

    edusoho-linux-php-nginx安装教程 本文档提供了在 CentOS 操作系统上安装 edusoho 网校的详细教程,涵盖从基本系统升级到安装和配置 nginx、PHP、MySQL 等组件的步骤。 系统升级和第三方源安装 在安装 edusoho ...

    php5.6_centos.tar.gz

    PHP 5.6是该系列的一个重要版本,提供了许多增强功能和优化,提高了性能和稳定性。本文将详细介绍如何在CentOS操作系统上安装并配置PHP 5.6。 一、系统准备 在开始安装前,确保你的CentOS系统是最新的。执行以下...

    通过修改配置真正解决php文件上传大小限制问题(nginx+php)

    命令通常为`sudo service nginx restart`和`sudo service php-fpm restart`。 通过以上步骤,你可以有效地解决Nginx+PHP环境下PHP文件上传大小限制的问题。记得在调整这些设置时,要兼顾服务器性能和安全性,以实现...

    php curl nginx 499 错误

    这些通常用于启动或停止服务,例如Nginx或PHP-FPM服务。在排查499错误时,你可以使用这些脚本来重启服务,看是否能解决问题。如果问题仍然存在,你可能需要查看Nginx的日志文件(如`error.log`)以获取更详细的错误...

    yum安装lnmp与zabbix

    需要调整 PHP 的一些配置选项来优化性能,如开启 pathinfo 功能,增加执行时间限制和内存限制等: ```bash sudo vim /etc/php.ini ``` 配置项示例: ```ini cgi.fix_pathinfo=1 max_execution_time=0 max_...

    Centos 安装 PHP7.4 和 Nginx的操作方法

    在CentOS操作系统中,安装PHP和Nginx是常见的任务,尤其对于搭建Web服务器来说至关重要。本教程将详细介绍如何在CentOS上安装PHP7.4和Nginx,以便为您的网站或应用程序提供强大的支持。 首先,确保系统已更新到最新...

    PHP服务器.rar

    - Nginx + PHP:Nginx以其高性能和低内存占用而闻名,它通过与PHP-FPM(FastCGI Process Manager)配合来处理PHP请求。在Linux上,同样可以通过包管理器安装Nginx和PHP-FPM。 2. PHP服务器源码分析: - PHP源码...

    叫你如何修改Nginx与PHP的文件上传大小限制

    例如,如果你的服务器性能较好,可以设置为600秒,即 `max_execution_time = 600`。 接下来,我们需要修改Nginx的配置。Nginx作为反向代理服务器,负责接收客户端的HTTP请求,因此它也需要知道允许的最大上传文件...

    nginx-1.4.1

    这有助于负载均衡、隐藏后端服务器信息和优化性能。 **二、解决跨域问题** 描述中提到“使用nginx代理服务,解决跨域问题”,这里的核心是Nginx的反向代理功能和配置。跨域问题源于浏览器的同源策略,限制了不同源...

    Nginx的Z-Blog的伪静态配置方法

    Z-Blog是一款流行的PHP博客系统,它支持静态化或伪静态化URL,以提高搜索引擎优化(SEO)和用户友好性。本文将详细介绍如何在Nginx服务器环境下为Z-Blog配置伪静态规则。 首先,我们要明白什么是伪静态。伪静态是...

Global site tag (gtag.js) - Google Analytics