兰空图床搭建新思路:对接阿里云oss,nginx反向代理。

news/2024/10/23 18:12:22

我认为,图床搭建有几个关键点:

  • 提供api方便上传,且方便管理。
  • 空间够大,且稳定。
  • 不怕被盗刷流量。

基于这几点,我想到了一种成本比较低的方案,即选择一台不限流量的阿里云vps+同地域的oss,上传通过兰空图床实现,访问通过nginx反向代理阿里云内网oss来实现。

比如,购买阿里云99块钱的vps,配置为2c2g3m,可以原价续费3年。再购买45块钱国内的5年40gb oss包。这样就算后面阿里云的99元活动到期了,还可以换其他的阿里云vps,再做一遍nginx反向代理就可以了,因为图片文件都保存在oss里面,所以不用担心数据迁移的问题。缺点就是3m的带宽太小,但是对于博客的小图片来说应该是足够,再压缩成webp格式,实际速度还是不错的。

一、搭建lsky图床

我使用的是1panel中的一键安装,然后做好反向代理就可以了。

image

如果想手搓,详见:https://github.com/lsky-org/lsky-pro/issues/256

# yml文件
version: '3'
services:mysql-main:image: mysql:5.7.22restart: always#名称(可以为空)hostname: mysql-main#容器名称container_name: mysql-main # 修改加密规则command: --default-authentication-plugin=mysql_native_passwordports: - "9306:3306" volumes:- mysql-data:/var/lib/mysql- mysql-conf:/etc/mysql- mysql-log:/var/log/mysql- ./mysql/init:/docker-entrypoint-initdb.denvironment:MYSQL_ROOT_PASSWORD: mysqlpswnetworks:- mysql-netlskypro:# build:#   # 指定dockerfile文件的所在路径#   context: ./lskypro#   # 指定Dockerfile文件名称#   dockerfile: Dockerfileimage: zyugat/lskypro:1.6.3restart: alwayshostname: lskyprocontainer_name: lskyproports: - "9080:80" volumes:- lsky-data:/var/www/htmlnetworks:- mysql-netvolumes:mysql-data:mysql-conf:mysql-log:lsky-data:networks:mysql-net:

搭建完成后,在lsky的存储策略中创建一个新的存储策略,存储策略填阿里云oss,访问域名为后面需要反向代理的前缀地址,AccessKeyId和AccessKeySecret自己去阿里云官网申请。最好是使用子账户,给予单独的oss权限。地域节点记得填存储桶的内网地址。在使用了「公共读」的权限后,意味着 OSS 上的文件都有了一个公网可访问的地址,这是一个会导致 OSS 流量费的隐患,所以需要堵住这个入口。OSS 支持通过 Referer 方式设置防盗链功能。在阿里云的防盗链设置里面填上自己服务器的ip,这样就不怕被盗链了。

image

二、nginx反向代理阿里云oss

这里直接放nginx配置:

location ^~ /oss/ {# 填自己的阿里云oss存储桶地址,记得加/proxy_pass https://xzxxxxxxxx.oss-cn-xxxxxxxx-internal.aliyuncs.com/; # 让图片链接能直接在浏览器中预览,而不是下载文件proxy_hide_header Content-Disposition; # 阿里云oss可以设置防盗链,所以这里设置refererproxy_set_header Referer $host; proxy_set_header Host xzxxxxxxxx.oss-cn-xxxxxxxx-internal.aliyuncs.com; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-Forwarded-Proto $scheme; # 当后端服务器返回错误时,使用自定义错误页面proxy_intercept_errors on; # 设置自定义错误页面error_page 403 404 /error.html; proxy_http_version 1.1; add_header X-Cache $upstream_cache_status; add_header Strict-Transport-Security "max-age=31536000"; proxy_ssl_server_name off; if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" ) {expires 1m; }proxy_ignore_headers Set-Cookie Cache-Control expires; proxy_cache proxy_cache_panel; proxy_cache_key $host$uri$is_args$args; proxy_cache_valid 200 304 301 302 10m; 
}

值得注意的是,当输入一个不存在的图片链接时,会返回阿里云oss的错误信息,这其中包含着存储桶的链接,这样有一定的安全隐患,所以用自定义错误页面,直接返回404页面。

# 当后端服务器返回错误时,使用自定义错误页面proxy_intercept_errors on; # 设置自定义错误页面error_page 403 404 /error.html; 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/75137.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

更改Google谷歌浏览器安装位置

谷歌浏览器默认是安装C盘的,越用占用的空间越大,所以需要手动迁移到非系统盘。 1、在官网下载安装包:Google Chrome 网络浏览器 2、下载后,双击安装,默认安装到C盘里面的,中途不能自定义安装。 3、安装好后会在桌面生成一个谷歌浏览器的快捷方式: 将鼠标移到谷歌浏览器快…

Claude 大更新,AI 可模仿人类访问电脑;月之暗面招募微软亚研院谭旭,研发类 GPT- 4o 的端到端语音模型

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文章 」、「有看点的 会议 」,但内容仅代表编辑…

AI网关对企业的意义及如何构建 AI 网关

随着大模型的发展,越来越多企业将生成性AI应用投入生产和业务当中,因而企业组织的系统应用也将面临前所未有的多重挑战,包括:如何遵循AI安全政策、如何理解用户行为,以及确保应用的可靠性和性能。AI网关旨在帮助企业应对AI调用的挑战及更多问题。AI网关充当组织内AI的中心…

API门户:API经济持续发展的增长引擎

在如今这个数字化迅速发展的时代,API门户正扮演着不可或缺的角色,成为推动API经济持续增长的重要引擎。随着API数量的急剧增加,企业能够更加方便地实现内部和外部系统之间的调用。以往企业需要从零开始开发每一个API,现在,API 门户为企业提供了一个集中化开放共享平台,企…

第一个Java spring boot demo运行

一、环境准备 1,下载JavaJDK需要安装两个 JDK 版本:1.8 / 17 安装 Zulu JDK(不能使用 Oracle JDK) JDK17:https://www.azul.com/downloads/?version=java-17-lts&os=macos&package=jdk#zuluJDK8:https://www.azul.com/downloads/?version=java-8-lts&os=ma…

代码随想录算法训练营第22天|补第9天的KMP算法,28. 找出字符串中第一个匹配项的下标|459.重复的子字符串

前置知识文章链接:https://programmercarl.com/0028.实现strStr.html#思路KMP的经典思想就是:当出现字符串不匹配时,可以记录一部分之前已经匹配的文本内容,利用这些信息避免从头再去做匹配。 前缀表:next数组就是一个前缀表(prefix table)。前缀表是用来回退的,它记录了…

中国大学mooc慕课视频课件课程下载工具,如何在电脑端下载中国大学mooc慕课视频课程课件资料到本地?

一. 安装中国大学mooc慕课课程下载器 1.获取学无止下载器 https://www.xuewuzhi.cn/icourse163_downloader 2.下载安装后,然后点击桌面快捷方式运行即可。 注意:杀毒软件可能会阻止外部exe文件运行,并将其当做成病毒,直接添加信任即可,本软件绝对没有木马病毒。 二. 使用…

【网课下载教程】网课视频下载攻略:让学习更高效

在当今互联网时代,在线学习已成为越来越多人的选择。有时,我们希望离线观看网课视频,以避免网络不稳定等问题。本文将为您提供一篇详细的网课视频下载教程,助您更高效地学习。 一、为什么下载网课视频?无需依赖网络:下载后的视频可以在没有网络的情况下观看,便于在交通工…