当前位置:首页 > 大杂烩 > 正文内容

Nginx安全机制限制 X-Accel-Redirect 访问站点目录下的文件解决方案

高老师2年前 (2023-10-02)大杂烩494

X-Accel-Redirect 的目的是将大文件处理过程交给 Nginx,减轻后端服务器的负担。此特性主要适用于处理下载、视频流等操作,通过重定向让 Nginx 直接向客户端发送文件内容,从而加快文件传输速度。

但是 X-Accel-Redirect 并不支持将文件访问路径设置为站点目录之外的路径,这是因为 Nginx 的安全机制限制了 X-Accel-Redirect 只能访问站点目录下的文件。如果你需要将文件访问路径设置为站点目录之外的路径,可能需要通过其他方式实现。

我是通过PHP设置动态HEADER头信息:

X-Accel-Redirect:G:/115/20231002/8/file_651a9675e94431696241269.zip

此时Nginx错误信息如下:

CreateFile() "D:/wwwroot/pan/publicG:/115/20231002/8/file_651a9675e94431696241269.zip" failed (123: The filename, directory name, or volume label syntax is incorrect)

配置下nginx alias指令信息

location /G: {
    alias G:/;
    internal;
}

上面的目的是让/G作为站点目录下面的内部目录并且指向到/G,/G是我通过115网盘挂载到本地的磁盘。

在PHP代码层给盘符前面加上/,让Nginx以为它是站点目录下面的目录:

X-Accel-Redirect:/G:/115/20231002/8/file_651a9675e94431696241269.zip

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/638.html

分享给朋友:

“Nginx安全机制限制 X-Accel-Redirect 访问站点目录下的文件解决方案” 的相关文章

c#中string和StringBuilder效率对比

c#中string和StringBuilder效率对比

    c#中string和StringBuilder直接看看执行速度。(2).String类型累计赋值Test               ...

Git本地仓库学习

Git本地仓库学习

1.全局用户信息设置 git  config  --global  user.name  gaojiufeng git  config  --global  user.email  392223903...

Git推送文件到远程仓库

Git推送文件到远程仓库

1.远程仓库的协作模式开发者把自己最新的版本推到线上仓库,同时把线上仓库的最新代码,拉到自己本地即可2.注册git帐号国外: http://www.github.com国内: http://git.oschina.net2.在码云创建项目,不要初始化readmegit push https://gi...

Git从远程仓库更新文件

Git从远程仓库更新文件

 git   pull  https://git.oschina.net/392223903/learn.git   master   换为您的git地址...

Git日志查看和版本切换

Git日志查看和版本切换

日志查看:git log版本切换:方式1:git  reset  --hard  HEAD^   倒退一个版本git  reset  --hard  HEAD^^  倒退两个版本方式2:(版本号的形式,建议版本号码补充完...

C# md5加密,C# md5加密代码

C# md5加密,C# md5加密代码

public static string GetMD5(string str) {     //创建MD5对象     MD5 md5 = MD5.C...