云服务器与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/; 
	    } 
	    
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值