基于专线,cosfs异地代理内网挂载腾讯云对象存储

1.前言

#此文服务器地址均为内网ip,相关公网地址均已打码或改写,需根据实际情况修改。

 

业务系统部署在的香港IDC,但是想要在服务器上基于专线内网挂载广州腾讯云的对象存储cos,实现异地更高效的读写。

实现起来是没有问题的,但是小坑有点多,感觉这个方案以后会是个比较常用的方案,所以以写成博客,不管是腾讯,阿里,等等等,均可参考此篇博客原理操作,希望你能从中获得灵感

 

2.方案介绍
#大致架构如下,相信聪明的你配上我牛皮的作图手艺,理解起来肯定没啥问题。

#专线实施这块咋们就不细聊,需要专门网络工程师协助,你可简单理解为香港和广州两台服务器之间拉了一个网线直连~比走公网效率高,真.顺着网线过去找你~

#七层HTTP代理,咋们用nginx实现,简单还高效,很香。

#不管是啥云,对于访问对象存储,基本都有一个特点,就是支持内网访问(符合一定条件),不可能说我得对象存储跟服务器隔得很近,搞不好在一个机柜上,你让我从公网访问它。

#阿里云对于对象存储策略是是直接提供内网连接地址(可能有些其他规则限制,可以自行查阅文档了解下:http://help.aliyun.com)

#腾讯云对对象存储的策略是,不直接提供内网连接地址,就给一个域名,但是这个域名可不是普通的域名,这个域名,你如果在跟对象存储同地域的服务器上ping的话是内网(需使用默认的腾讯dns服务器),在外网ping的话,就是外网,这说明如果环境符合,是可以直接通过一个地址内网访问对象存储的,也就如下图,都是广州地域,服务器默认解析至内网,那么现在已知,广州代理服务器是直接内网访问对象存储的。

#那么,我们开始操作吧,让香港服务器也能内网调用对象存储!

基于专线,cosfs异地代理内网挂载腾讯云对象存储

 

 

 3.环境信息

#服务器

10.17.58.10  Centos7    cosfs工具包(cos挂载客户端)   

172.16.0.8   Centos7    nginx工具包(七层代理实现)

 

4.部署实施

4.1代理服务器部署

 

#红色部分需依据实际情况填写,配置这个的目的是给香港服务器暴露对象存储的地址(对象存储的调用逻辑这个小坑很关键,需要基于A,B两个域名分别代理至A,B,为啥要把基于和目标配置一样呢,请看4.1最后一张图,就是为做地址伪装做支持,因为1.1.1.1是不能直接访问到192.168.1.1的,但是又必须遵循域名格式需求)

#client_max_body_size 1000m   最大上传值,根据实际情况填写,太小会影响挂载对象存储后的写操作体验,写入大文件时会失败。

 

>yum -y install nginx

>cat /etc/nginx/nginx.conf

worker_processes  1;          #根据cpu核数修改
error_log  logs/error.log;
events {
    worker_connections  10240;
    use epoll;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  logs/access.log  main;

    sendfile        on;
    keepalive_timeout  65;



    server{
        listen   80;
        server_name  <bucket-name>.<cos-domain>;           #根据你得对象存储地址填写,例如:b1-6666666666.cos.ap-guangzhou.myqcloud.com 
        charset  utf-8;
        location /{
        client_max_body_size 1000m;
        proxy_pass   https://<bucket-name>.<cos-domain>;   #同上
        }
}

    server {
        listen       80;
        server_name  <cos-domain>;                         #这里仅映射到对象存储域名即可,例如:cos.ap-guangzhou.myqcloud.com
        charset  utf-8;
        location / {
        client_max_body_size 1000m;
        proxy_pass https://<cos-domain>;                   #同上
        }

    }
}

#检查配置并启动

>nginx  -t 

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

>nginx

>netstat -antp |grep LISTEN

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      4124/nginx: master

 

 

 

基于专线,cosfs异地代理内网挂载腾讯云对象存储

 

 

 4.2 对象存储cos挂载客户端部署

 

#hosts配置,修改本地dns解析,将cos地址解析至跳板机,需添加两条解析记录[ip:cos-domain],[ip:bucket-name.cos-domain]

>vi /etc/hosts

172.16.0.8  cos-domain   #例如cos.ap-guangzhou.myqcloud.com

172.16.0.8  bucket-name.cos-domain   #例如b1-**********.cos.ap-guangzhou.myqcloud.com

#创建挂载点

>mkdir /mount-cos

 

 

#cosfs工具包部署
>yum -y install automake gcc-c++ git libcurl-devel libxml2-devel fuse-devel make openssl-devel
>git clone https://github.com/tencentyun/cosfs /usr/cosfs
>cd /usr/cosfs
>./autogen.sh
>./configure
>make
>make install

 

#创建ak,skj记录文件并基于跳板机挂载(挂载时域名填写的是腾讯cos地址,但是本地做了hosts配置,将会映射到跳板机)

 

#命令构成:echo <BucketName-APPID>:<SecretId>:<SecretKey> > /etc/passwd-cosfs (ak|sk获取:https://console.cloud.tencent.com/cam/capi)

>echo b1-6666666666:AKIDg6TZNkakakakakakakak:JciRt35qKaomSryuZiehsksksksksksk > /etc/passwd-cosfs

 

>chmod 600 /etc/passwd-cosfs

 

#命令构成: cosfs <BucketName-APPID> <MountPoint> -ourl=<CosDomainName> -odbglevel=info -oallow_other
> cosfs b1-6666666666 /mount-cos -ourl=http://cos.ap-guangzhou.myqcloud.com -odbglevel=info -onoxattr -oallow_other

 


 

4.3 验收测试

 

#挂载后验证

基于专线,cosfs异地代理内网挂载腾讯云对象存储

 

 

#写入100M文件测试(受到10M专线限制,这个速度是正常的)

基于专线,cosfs异地代理内网挂载腾讯云对象存储

 

 

#观察流量走向(图中192.168.100.102是专线idc边界ip,你可将其理解为就是香港客户端(10.17.58.10)即可)(iftop -i  网卡 -n)

基于专线,cosfs异地代理内网挂载腾讯云对象存储

 

原文链接: https://www.cnblogs.com/xiaodai12138/p/13225923.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    基于专线,cosfs异地代理内网挂载腾讯云对象存储

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/361654

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 下午1:55
下一篇 2023年3月2日 下午1:56

相关推荐