首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过url访问时,Ubuntu 20.04上的Laravel 7在storage/protected/images目录中使用NGINX - Images时返回404

问题描述:通过url访问时,Ubuntu 20.04上的Laravel 7在storage/protected/images目录中使用NGINX - Images时返回404。

回答: 这个问题可能是由于NGINX配置不正确或Laravel的路由问题导致的。下面我将分别介绍可能的解决方案。

  1. NGINX配置问题: 首先,确保NGINX已正确配置以允许访问storage/protected/images目录。在NGINX的配置文件中,通常是位于/etc/nginx/sites-available/目录下的默认配置文件中,添加以下配置:
代码语言:txt
复制
location /storage/protected/images {
    alias /path/to/laravel/storage/protected/images;
    try_files $uri $uri/ /index.php?$query_string;
}

请将/path/to/laravel替换为您实际的Laravel项目路径。然后重新加载NGINX配置文件:

代码语言:txt
复制
sudo service nginx reload
  1. Laravel路由问题: 确保Laravel的路由配置正确,可以尝试在routes/web.php文件中添加以下路由:
代码语言:txt
复制
Route::get('storage/protected/images/{filename}', function ($filename) {
    $path = storage_path('protected/images/' . $filename);
    if (!File::exists($path)) {
        abort(404);
    }
    $file = File::get($path);
    $type = File::mimeType($path);
    $response = Response::make($file, 200);
    $response->header("Content-Type", $type);
    return $response;
})->where('filename', '.*');

这将创建一个路由,当访问storage/protected/images/{filename}时,将返回对应的图片文件。确保您的Laravel项目中已经引入了FileResponse类:

代码语言:txt
复制
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Response;
  1. 腾讯云相关产品推荐: 腾讯云提供了丰富的云计算产品,以下是一些与问题相关的产品推荐:
  • 对象存储(COS):腾讯云对象存储(COS)是一种高可用、高可靠、强安全的云存储服务,适用于存储和处理大规模非结构化数据。您可以将图片文件上传到COS,并通过COS的URL进行访问。了解更多:腾讯云对象存储(COS)
  • 云服务器(CVM):腾讯云云服务器(CVM)是一种可弹性扩展的计算服务,提供了多种规格的云服务器实例供您选择。您可以在CVM上部署Ubuntu 20.04和NGINX,并将Laravel项目部署在CVM上。了解更多:腾讯云云服务器(CVM)

请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据您的实际需求和预算来决定。

希望以上解决方案对您有帮助!如果您有任何其他问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

BookStack企业团队小型Wiki(知识库网站)基础安装与使用

2.多实例部署 目前,BookStack 不支持一个安装多个实例,但您可以通过创建多个安装并适当地配置 Web 服务器同一服务器设置多个实例。...,最好是不同设备。...,而这些主题可以github找寻您喜欢样式; 主题设置说明 更多主题 更改代码块主题: 将代码插入页面或使用 Markdown 编辑器,您输入文本将采用默认代码镜像配色方案突出显示; BookStack...可以通过启用 LDAP 身份验证在编辑角色看到”外部身份验证 ID”字段来覆盖 此字段可以使用帐户或组常见名称 (CN) 填充。如果填充,将使用此字段 CN,并将忽略角色名称。.../storage/uploads/files s3 - Amazon S3 上将文件存储在外部。图片在上传可公开访问

3.7K30

基于 Redis 消息队列实现文件上传异步存储

不过 Laravel ,我们可以基于消息队列完成文件存储异步处理:编写一个处理文件上传任务类,当有文件上传,将该文件存储操作通过任务类推送到消息队列,最后通过队列处理器进程异步处理存储和其他后续操作...任务类推送到消息队列后,被队列处理器进程处理执行是 handle 方法,如果执行时文件已存在,则将该任务标记为执行成功,不再执行后续逻辑,否则会将其存储到公共磁盘 images 目录下,存储成功,...为了让公共磁盘文件可以通过 Web URL 访问,还需要执行 sail artisan storage:link 命令创建对应软链接。...处理完 ImageUploadProcessor 任务后,就可以 storage/app/public/images 目录下看到对应图片文件: ? images 表中看到新增记录: ?...不过这种优化思路前提是队列处理器进程可以访问这个临时文件路径,如果队列处理器和 Web 应用在同一台机器,或者临时文件存储共享目录,这种方案是可行

3.4K20

网站静态内容出版解决方案

静态化网站可不避免使用ajax做局部更新, ajax请求也要考虑缓存问题 首次访问服务器 访问www服务器 nginx 判断文件是否存在,如果存在将文件显示出来 如果文件不存在,去cms服务器查找,...如果存在便返回给www服务器,并显示出来 如果cms上文件不存在,cms服务器便使用rewrite生成该文件, 同时将内容返回给www服务器,www将内容缓存在自己服务器,并将内容显示出来 第二次访问...访问www服务器 nginx 判断文件是否存在,如果存在将文件显示出来 如果文件不存在,去cms服务器查找, 如果存在便返回给www服务器,并显示出来 如果cms上文件不存在,cms服务器便使用rewrite...生成文件会从cms同步到www服务器....id=$2 last; URL 唯一, url设计要考虑唯一性, 不要出现同一个url处理两个任务, 例如下面的例子, 每个用户profile一个URL, 当被访问时候便可以缓存在CDN或者用户浏览器

1.2K50

Nginx配置root和alias分不清?本文3分钟帮你解惑!

Nginx alias指令 alias 指令就是将 URL 重新映射到根位置以外其他目录,它对于从不同目录提供静态文件很有用,例如,如果位置 /static/ 别名是 /var/www/static.../images,那么当用户请求 /img/wljslmz.png Nginx 将在 /var/www/static/images 查找该文件。...=404; } } 如上配置,当用户访问https://www.wljslmz.cn/img/wljslmz.png,会找到/var/www/static/images/wljslmz.png...如果从与 root 指定目录不同位置读取数据,最好使用alias。...总结 NginxWeb开发中出场率非常高,本文主要讲解了什么Nginx,重点对比了Nginx配置root和alias指令用法和区别,希望本文对您有所帮助,有任何疑问,欢迎在下方评论区与我讨论!

74620

nginx之静态资源访问和负载均衡使用

二、nginx常见使用 这里我主要演示nginx源码安装以及相应模块安装,然后讲解一下负载均衡原理并通过实战来简单演示,还有静态资源访问(比如说图片和视频访问),关于什么是nginx,它是干什么用...internet请求连接客户端,简单来说就是真实服务器不能直接被外部网络访问,想要访问必须通过代理,如下图所示: 上图中有两个网关,一个是nginx应用层网关,一个路由器硬件网关,nginx和各服务器都是同一个局域网里面...nginx了,然后当我访问143这台机器时候,其实访问是141这台机器内容,这就是代理使用了: -- 负载均衡:从负载均衡四个字来看,肯定是用来减轻服务器访问压力;比如说当一台服务器单位时间内访问量越大...,服务器压力就越大,大到超过自身承受能力,服务器就会崩溃(比如每年双十一活动,淘宝就使用nginx负载均衡功能,不然当天那么多用户活跃淘宝,服务器肯定吃不消啊!)。...) 这里我143机器放了几张图片,然后/usr/local/nginx目录下创建了一个images文件夹,然后把143机器图片copy到images下面来: root@ubuntu:/usr

55820

Nginx防盗链(下载防盗链和图片防盗链)及图片访问地址操作记录

,定义服务器名或者可选URI前缀.主机名可以使用*开头或者结尾,检测来源头部这个过程,来源域名主机端口将会被忽略掉 regular expression:正则表达式,~表示排除https://...google和baidu站点都可以访问到当前站点图片 如果来源域名不在这个列表,那么$invalid_referer等于1,if语句中返回一个403给用户,这样用户便会看到一个403页面; 如果使用下面的...当再次访问http://web01.wangshibo.cn/long.jpg就会跳转到http://www.heihei.com/404.jpg(测试,记得删除浏览器缓存。.../nginx/images/ 2)需求:tomcat里部署一个用于图片上传和下载目录,然后nginx里配置图片访问url。...url是:https://images.wang.com/file/*** 图片存放路径是本机/data/tomcat7/ehrbak/ 比如有一张图片路径为/data/tomcat7/ehrbak

3.9K101

云原生之路 | 3.实践Docker容器环境部署及初体验

2.2 容器Docker安装使用体验 一小节我们准备Ubuntu 、Linux 、WindowsServer 等操作系统基础环境,本节我们分别简单尝试准备环境安装配置Dokcer和以及Docker...所以本节我们将带领读者朋友们快速CentOS7安装Docker和Containerd.io 安装环境说明 l操作系统: Ubuntu Focal 20.04 (主机地址: 10.10.107.241...shell命令 至此 CentOS7安装使用Docker 和Containerd 初体验完成。...# 使用nginx镜像创建并后台运行一个名称myblog 容器,映射我们项目文件到容器/usr/share/nginx/html目录下,对外服务端口为8080,运行后将会返回容器ID。...使用ctr工具创建一个nginx容器,此处仍采用实践1H5代码示例,运行下述命令会映射blog目录项目到Nginx容器 /usr/share/nginx/html 工作目录并后台运行,命令执行结果如下图

32010

Docker命令详解

0x003 Docker 本地镜像管理命令 3.1 列出本地镜像 docker images # 列出本地镜像 docker images ubuntu # 列出本地镜像REPOSITORY为ubuntu...# Docker 守护进程执行 Dockerfile 指令前,首先会对 Dockerfile 进行语法检查,有语法错误时会返回 3.5 查看指定镜像创建历史 docker history...v /data:/data -d nginx:latest # 使用镜像 nginx:latest,以后台模式启动一个容器,将容器 80 端口映射到主机 8080 端口,主机目录 /data 映射到容器...端口上 例5: docker run -it nginx:latest /bin/bash # 使用镜像nginx:latest以交互模式启动一个容器,容器内执行/bin/bash命令 5.2 杀掉一个运行容器...mynginx /bin/bash # 容器 mynginx 开启一个交互模式终端 例3: docker exec -it 9df70f9a0714 /bin/bash # 通过 exec 命令对指定

30050

1.Podman容器管理工具基础学习

官网描述: Podman是一个无守护进程容器引擎,用于Linux系统开发、管理和运行OCI容器(开源容器管理工具)。容器可以作为根运行,也可以以无根模式运行。...podman创建容器都会被限制; 3.可将 podman命令放入systemd单元文件容器进程可通过podman返回通知(SD_NOTIFY)表明服务已准备好接收任务 Q:Podman有何作用?...,首先祭出我们Ubuntu作为一个Linux爱好者必备; Ubuntu 描述:Kubic项目提供了Ubuntu 18.04、19.04、19.10和20.04软件包, Ubuntu已经有许多带有libpod..._64 x86_64 x86_64 GNU/Linux 简单使用: 描述:建议非根用户运行并在需要根升级地方使用sudo,下面以Hello-Worlds示例展现podman使用; 使用示例: #...答: 它是一个兼容 kubernetes pod 定义,你可以直接通过 kubectl apply -f hugo.yaml 将其部署 Kubernetes 集群也可以直接通过 podman 部署

6.5K52

基于腾讯云cos图床教程

查找资料时候知道了腾讯云还有个COSFS东西,通过这个软件就可以把你cos盘挂载到你主机目录上。注意:该方法不适合那种高并发需要进行大量IO读写操作。...挂载到指定目录(注意:你要把它挂载图床网站目录下,原因后面会说)cosfs 你bucket名字 挂载目录 -ourl=你腾讯云访问网址比如:将my-bucket这个bucket挂载到/tmp/...生产环境建议设置为 info,调试可以设置为 dbg。如果您系统日志,未定期清理且由于访问量很大,生成大量日志,您可以设置为 err 或者 crit。...-ouid=[uid]该选项允许用户 id 为 [uid] 用户不受挂载目录中文件权限位限制,可以访问挂载目录所有文件。...并发打开文件数较多或者读写大文件时候,COSFS 工具会尽量多使用硬盘来提高性能,默认只保留 100MB 硬盘可用空间给其他程序使用,可以通过选项 oensure_diskfree=[size]

3.8K31

Nginx rewrite正则匹配重写

这个特性有利用当网站结构做出重大调整,如之前网站mp3资源使用URL为www.site1.org/mp3进行访问,而现在服务器mp3目录已经被使用music目录替换,那rewrite这个功能则能够轻松实现...该rewrite指令在其配置文件中出现顺序顺序地执行。可以使用标志终止对伪指令进一步处理。   ...rewrite写在location使用break标志,或者将rewrite写在if上下文中; 其他指令 rewrite_log on|off   是否把重写过程记录在错误日志;默认为notice...-router.com 192.168.1.175 www.centos7-router.com 打开浏览器,通过域名方式进行访问http://site1.org会自动跳转到http://www.site1....org(演示略) 四、将http重写至https 非全站https,对于有些敏感数据需有走https,那也可以通过rewrite方式实现 如下示例,假定https://www.site1.org

2.1K10
领券