当前位置: 首页 > article >正文

云服务器与nas实现在冷热资源访问,nginx代理

在实际项目中,我们的文件存储是一个必不可少的环节,本博主了解到现在的存储方案有

  1. 购买纯系统的云服务器,自己安装个mino,再使用nginx代理给web使用
  2. 购买OSS服务,现在有云厂商都有提供,储存价格也挺便宜的,只是访问流量也要收费
  3. 自建服务器,拉个专线(这个需要有公网IP)

本次案例主要介绍的是云服务器+nas结合方案,因为云端储存费用过高,对于一些冷数据,没必要放到云服务器

拓扑结构如下

经常性访问的热数据就放到云服务器中,访问次数少的就放到nas中

在这里会出现在一个问题 ,当数据从热数据转到冷数据时,访问地址会发生变化

访问的地址会从 

http://abe23.com/v1/myresouce/1.jpg ----> http://abe23.com:9060/v1/myresouce/1.jpg

在这里介绍一种办法,访问地址不变,可以自动更换地址

使用ngix代理,当出现404状态码时就把访问转到下一个代理地址

例如

第一种情况

访问 http://abe23.com/v1/myresouce/1.jpg

  1. 云服务器中有就直接返回

第二种情况

访问 http://abe23.com/v1/myresouce/1.jpg

        云服务器中没有,把代理转到frp穿透的地址 http://abe23.com:9060/v1/myresouce/1.jpg

下面给出配置

frp 代理  详细配置可以查看我之前的文章

nginx 配置

server {

	    listen       80;
	    server_name  ****;  
	     #允许跨域请求的域,* 代表所有
		add_header 'Access-Control-Allow-Origin' *;
		#允许请求的header
		add_header 'Access-Control-Allow-Headers' *;
		#允许带上cookie请求
		add_header 'Access-Control-Allow-Credentials' 'true';
		#允许请求的方法,比如 GET,POST,PUT,DELETE
		add_header 'Access-Control-Allow-Methods' *; 
	    location /v1/myresouce/ {
            # 访问云服务的文件
		    proxy_pass   http://127.0.0.1:9000/bridgefile/;
			proxy_intercept_errors on;
            # 没有访问nas
			error_page 404 = /v2/myresouce$request_uri;
	    }

	    location /v2/myresouce/v1/myresouce/ {
	      	proxy_pass   http://127.0.0.1:9062/; 
	    } 

	   location = /50x.html {
			root   html;
	   }
	}


server {
	    listen       9062;
	    server_name  127.0.0.1;  
	    location / {
            # 第1台nas的web访问
	     	proxy_pass   http://127.0.0.1:9060/; 
			proxy_intercept_errors on;
            # 当第一台访问没有时,转到第二台nas访问
			error_page 404 = /v2/myresouce$request_uri;
	    }

	    location /v2/myresouce/ {
            # 第2台nas的web访问地
	      	proxy_pass   http://127.0.0.1:9061/; 
	    } 
	    
	}


http://www.kler.cn/a/160301.html

相关文章:

  • 爬虫补环境案例---问财网(rpc,jsdom,代理,selenium)
  • 认识一下Unicorn
  • Spring Boot 2.x 和 Druid 多数据源整合 dm
  • 提取神经网络数学表达式
  • 某app最新版 vmp算法分析一
  • Kafka - 启用安全通信和认证机制_SSL + SASL
  • 如何设置不同的网页标题(react)
  • 配置CentOS服务器以支持PHP
  • Python-算术运算符详解
  • 参数是Id,但要显示接口中的id对应的名称
  • Linux常用指令详解
  • TCP实现一对一聊天
  • 介绍 Apache Spark 的基本概念和在大数据分析中的应用。
  • 大数据-之LibrA数据库系统告警处理(ALM-37014 Gaussdb进程锁文件已经存在)
  • Web前端JS如何获取 Video/Audio 视音频声道(左右声道|多声道)、视音频轨道、音频流数据
  • 力扣每日一题:2646. 最小化旅行的价格总和(2023-12-06)
  • HarmonyOS4.0从零开始的开发教程05 应用程序入口—UIAbility的使用
  • C++EasyX之井字棋
  • 【华为数据之道学习笔记】3-1 基于数据特性的分类管理框架
  • 大数据可视化项目——基于Python豆瓣电影数据可视化分析系统的设计与实现
  • AIGC: 关于ChatGPT中基于Whisper模型实现音频转文本
  • Java利用UDP实现简单群聊
  • 做题笔记:SQL Sever 方式做牛客SQL的题目--VQ35
  • Java开源工具库Guava使用指南详解
  • sqlite3.44.2的编译
  • centos7安装rabbitMQ