首页
学习
活动
专区
圈层
工具
发布

使用nginx的XSendfile提升php下载文件性能

我在之前一篇笔记里面写了如何用php下载文件,里面写了两种方法来下载文件 nginx配置直接try_files下载文件 php读取文件之后再输出 对于第二种方法,php-fpm和nginx的内存和IO情况都有飙升...在传统的文件传输过程中,文件数据经历了以下步骤: 硬盘 -> 内核buffer -> 用户buffer -> socket相关缓冲区 -> 协议栈 而sendfile机制被开启之后,减少了一次文件copy...下面说说如何使用nginx的XSendfile来提升PHP文件下载性能。...配置完之后,重启nginx。 3. 修改php代码 在php代码里面使用 X-Accel-Redirect 让nginx使用XSendfile机制提升下载性能,这样用户下载到了 /home/nemo/fileDir/protectedFile/test.pdf

1.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    运维之LNMP环境安装与配置

    流程步骤如下: Nginx官网下载Nginx软件包&解压&编译&安装; MYSQL官网下载MYSQL软件包&解压&编译&安装; PHP官网下载PHP软件包&解压&编译&安装; LNMP配置文件整合,创建...nginx echo -e "\e[32m#Messge: 正在启动 Nginx \e[0m" if [ !...-eq 0 ];then echo -e "\e[32m#Message: PHP 编译成功正在执行make && make install 安装操作 \e[0m" make...里执行的php文件 php-fpm不能访问所执行的php也就是权限问题 情况1解决方法: #(1)在location体中里面添加当文件不存在时返回404而不是交给php-fpm进行处理 location...(/usr/local/nginx/sbin/nginx) #重新加载nginx配置文件 情况2解决方法: 第一种,就是把你root文件夹设为其他用户允许 第二种,找到你的php-fpm.conf的配置文件

    1.1K20

    如何在 Ubuntu 20.04 上使用LEMP安装WordPress

    通过键入以下内容来执行此操作: sudo apt install php-fpm php-mysql 复制 即使安装了所有必需的 LEMP 堆栈组件,您仍然需要进行一些配置更改,以便告诉 Nginx 使用...复制 通过创建一个新的服务器块配置文件,而不是编辑默认配置文件,您可以在需要时恢复默认配置。...如果您正在使用nano,您可以通过按CTRL + XthenY和来执行此操作ENTER。...这样,不是将 404 错误作为默认选项返回,而是将控制权传递给 index.php带有请求参数的文件。...这是 Nginx 运行的用户和组,Nginx 需要能够读取和写入 WordPress 文件才能为网站提供服务并执行自动更新: sudo chown -R www-data:www-data /var/www

    1.3K30

    Windows安装nginx + php + mysql

    :http://nginx.org/en/download.html 下载稳定版本 QQ截图20211103101540.png 咱们这次下载的是1.20.1版本、将下载的zip文件解压到您指定的安装目录...nginx无效,需要手动关闭任务管理器内的所有nginx进程,再启动才可以 命令启动nginx服务,启动时会一闪而过是正常的 正在加载命令启动nginx 查看任务进程是否存在,dos或打开任务管理器都行...原来在Windows下运行php7需要Visual C++Redistributable 2015而之前的版本不需要那么高的,最新版的Apache可能也需要这个组件,这个组件是运行Visual Studio...文件看看是否成功,nginx.conf配置文件里将以下php配置前面的 # 去掉保存文件,并重启nginx location ~ \.php$ { root...,如果手动关掉php就挂掉了,接下来解决这个问题;首先你需要下载一个小文件RunHiddenConsole 然后随便指定一个目录,新建两个bat批处理文件,start_web.bat和stop_web.bat

    8.4K12

    Anolis 8.8 软件包部署适配(二)

    make,生成二进制文件 make 执行make完毕后,objs目录下会生成新的nginx执行文件。...4,替换nginx 执行文件 备份nginx cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak 复制新的ngin执行文件到/usr...make,生成二进制文件 执行make命令,make 执行make完毕后,objs目录下会生成升级的nginx执行文件 4,升级替换nginx 执行文件 备份原版本nginx执行文件 cp /usr/local...允许特定用户或组以文件以及执行程序的属主或属组的身份执行文件,而不是以当前用户的权限执行。 SUID允许一个可执行程序在执行时以文件所有者的身份运行,而不是执行该程序的用户的身份。...,而不是执行该程序的用户的身份。

    1.5K20

    从源码编译N(ginx)+M(ySQL)+P(HP)并安装WordPress By HKL,

    实习项目 过程 1.下载nginx-1.11.3源码包并且编译。 因为nginx HTTP rewrite module 需要PCRE包,同时其依赖的zlib本机也没有安装。所以一并下载源码包编译。...其中遇到过一次错误,就是nginx依赖的是PCRE而不是PCRE2,在下载的时候需要区分清楚。 PCRE和zlib编译安装过程比较简单,只需....下的所有.conf文件,并且修改php-fpm.d目录下的www.conf 再通过修改nginx配置文件nignx.conf以支持fastcgi,期间遇到错误就是通过URL访问php文件时没有执行而是直接下载...首先,编译安装MySQL需要使用cmake,所以先编译安装好cmake,过程比较简单,不过要执行的是./bootstrap 而不是....安装前先在MySQL中新建wordpress数据库,并且授权好 因为MySQL使用的不是默认的3306端口,所以需要修改wp-config.php文件,将 /** MySQL主机 **/一项直接修改成socket

    71740

    PHP安装包TS和NTS的区别-Centos7 LANMP环境搭建(最完善版本)

    而采用FAST-CGI 解释器的 话,当一个请求执行完毕后不会注销该进程,而是将改进程进入休眠期,当接收到新的请求时,重新启用改进程进行处理。...页面请求时,交给php引擎解释,而不是下载页面 AddType application/x-httpd-php .php AddType application/x-httpd-php-source ....Nginx编译安装后没有办法通过systemctl指令来进行操作,因为它不是用rpm安装的,它里面没有服务,需要找到Nginx的执行文件才能启动 cd /usr/local/nginx/sbin/ 启动...的配置文件nginx.conf,引入虚拟主机的配置文件 include vhosts/*.conf 执行nginx的重新加载配置文件 /usr/local/nginx/sbin/nginx -s reload...index index.php index.html; #如果请求既不是一个文件,也不是一个目录,则执行一下重写规则

    3.2K10

    「PHP」不依赖集成环境,使用Nginx手动配置Thinkphp运行环境

    nginx 1.13+;提供php项目运行环境支持; thinkphp 5+;php项目; php-nts-5.6;php 语言支持,php作为解释型语言,需要安装官方提供的语言解释器,方能解释执行php...本文选择nts版,点击Zip下载PHP程序包,然后解压,得到如下的目录: php.exe:PHP执行工具,可以在CMD命令执行命令php.exe xxx.php来运行PHP文件。...php-cgi.exe:PHP解释器,为CGI提供的执行工具,在web项目总会经常使用。 php-win.exe:也可以执行PHP文件,区别是会打开控制台,但不显示输出内容。...目录介绍 模块介绍 文件conf/nginx.conf是nginx的服务配置文件,在配置文件中可以对nginx做网络基础配置、虚拟主机绑定、反向代理,负载均衡等众多灵活、强大的配置,以下是一些主要的模块...运行命令 在cmd中打开nginx根目录,即可对nginx执行运行命令; 查看Nginx的版本号:nginx -V 配置检查:nginx -t 启动nginx:start nginx 配置文件修改重装载命令

    2.1K00

    「PHP」不依赖集成环境,使用Nginx手动配置Thinkphp运行环境

    nginx 1.13+;提供php项目运行环境支持; thinkphp 5+;php项目; php-nts-5.6;php 语言支持,php作为解释型语言,需要安装官方提供的语言解释器,方能解释执行php...php 安装目录 php.exe:PHP执行工具,可以在CMD命令执行命令php.exe xxx.php来运行PHP文件。...php-cgi.exe:PHP解释器,为CGI提供的执行工具,在web项目总会经常使用。 php-win.exe:也可以执行PHP文件,区别是会打开控制台,但不显示输出内容。...nginx 目录介绍 模块介绍 文件conf/nginx.conf是nginx的服务配置文件,在配置文件中可以对nginx做网络基础配置、虚拟主机绑定、反向代理,负载均衡等众多灵活、强大的配置,以下是一些主要的模块...配置文件修改重装载命令:nginx -s reload 快速停止或关闭Nginx:nginx -s stop 正常停止或关闭Nginx:nginx -s quit php 运行配置 nginx

    1.9K30

    macOS 通过brew配置php,nginx,composer,php-zip,php-redis

    类似于: PHP 安装扩展报错 grep: /usr/include/php/main/php.h: No such file or directory 包括我们要在www目录下做修改,也不是那么方便。...最好是使用高速稳定的VPN下载官方源。 下载时总是出现 fetch failed , early EOF 这样的错误。...,直接修改nginx.conf即可,如果需要多个,则在servers文件夹下,新建单独的xx.conf文件。...php-zip 下载,或使用wget wget http://pecl.php.net/get/zip cd zip-1.19.2 ls 查看一下包是否已经解压,能否ls的时候看到里面的文件结构,如果还是一个目录文件...Api No: 320190902 查看一下本地php-config的所在目录 which php-config /usr/local/opt/php@7.4/bin/php-config 对于当前正在使用的版本进行配置

    1.4K30

    用Docker玩转PHP环境配置

    如何处理配置文件呢,我将配置文件进行归类,PHP的配置文件放在PHP目录下,Nginx的配置放在Nginx目录下,至于要不要再新建一个子文件夹就看情况了,比如conf.d文件夹。...所以需要注意的最重要一点就是,配置文件中出现的路径是容器内环境的路径,而不是宿主机的路径,每一个容器内都有一个运行环境,都是一台微型小系统,这些路径都是容器内的路径。...路径,是到时候Nginx容器的路径,而不是当前在操作的宿主机的路径,所以到时候我们要挂载Web程序放的位置到这个路径。...2.4 编写 docker-compose.yml 在PHP、Nginx等目录的同级,我们创建一个docker-compose.yml,我们在执行docker-compose相关命令时,会自动找到这个文件...-O php/pkg/cphalcon.tar.gz 然后下载我们会用到的PHP拓展包。

    2.6K20

    用Docker玩转PHP环境配置

    如何处理配置文件呢,我将配置文件进行归类,PHP的配置文件放在PHP目录下,Nginx的配置放在Nginx目录下,至于要不要再新建一个子文件夹就看情况了,比如conf.d文件夹。...所以需要注意的最重要一点就是,配置文件中出现的路径是容器内环境的路径,而不是宿主机的路径,每一个容器内都有一个运行环境,都是一台微型小系统,这些路径都是容器内的路径。...路径,是到时候Nginx容器的路径,而不是当前在操作的宿主机的路径,所以到时候我们要挂载Web程序放的位置到这个路径。...2.4 编写 docker-compose.yml 在PHP、Nginx等目录的同级,我们创建一个docker-compose.yml,我们在执行docker-compose相关命令时,会自动找到这个文件...-O php/pkg/cphalcon.tar.gz 然后下载我们会用到的PHP拓展包。

    2.3K20
    领券