当前位置:首页 > 天道酬勤 > 正文内容

fastdfs架构(fastdfs整合nginx)

张世龙2021年12月21日 18:05天道酬勤650

一、服务器信息

1 .主机:服务器1-2、10.10.10.11、10.10.10.12

2 .数据:/data1

二、部署服务

1 .部署依赖公共组件

下载并编译和安装yum安装- ygccgcc-cperlpcrepcre-devel zlib-devel OpenSSL-devellibnllibnl-devel依赖源代码

获取olibfastcommon-master.zip https://代码加载. github.com/happy fish 100/libfastcommon/zip/master

unzip libfastcommon-master.zip

CD libfastcommon -主控制器

./make.sh

./make.sh安装

ln-s/usr/lib 64/libfastcommon.so/usr/lib/libfastcommon.SO2 .编译并安装部署快速DFS下载源代码

获取ofastdfs -主文件. zip https://代码加载. github.com/happy fish 100 /快速文档/zip /主文件

unzip快速DFS-master.zip

CD快速DFS -主

./make.sh

./make.sh安装

```三、配置快速DFS

1 .在两个节点上配置跟踪器

基本型

创建跟踪程序数据存储目录

mkdir/data1/fdfs /跟踪器- p

#ip地址基于实际修改

mv/etc/fdfs /跟踪程序. conf .样本/etc/fdfs /跟踪程序. conf

sed-I ' s/bind _ addr=/bind _ addr=10.10.10.11/g '/etc/fdfs /跟踪器. conf

修改基本路径

sed-I ' s :基本路径=/家庭/Yuqing /快速DFS :基本路径=/数据1/FDFS /跟踪器3360 g '/ETC/FDFS/Trretro

# #要更改的其他参数根据实际情况调整2.2个节点来配置存储

创建存储数据存储目录

mkdir/data1/fdfs /存储- p

mkdir/data1/fdfs /存储- p

#ip地址基于实际修改

mv/etc/fdfs /存储. conf .样本/etc/fdfs /存储. conf

sed-I ' s /绑定添加器=/绑定添加器=10.10.10.11/g '/etc/fdfs /存储. conf

修改基本路径

sed-I ' s :基本路径=/家庭/Yuqing /快速DFS 3360基本路径=/数据1/FDFS /存储器3360 g '/ETC/FDFS /存储器/存储器

# #更改文件存储目录

SED-I ' s 3360存储路径0=/家庭/Yuqing /快速DFS 3360存储路径0=/数据1/FDFS /存储/数据3360 g '/ETC

# #更改跟踪器的地址

sed-I ' s /跟踪服务器=192.168.209.121336022122 /跟踪服务器=10.10.11:22122/g '/etter

sed-I '/^跟踪服务器/a跟踪服务器=10.10.10.12336022122 '/etc/fdfs /存储. conf

# #如果有n个保存数据目录(磁盘),则需要添加store _ path 1,2,3,) ) n-1 ),修改store_path_count=n后启动服务

FFS _跟踪/etc/fdfs /跟踪. conf开始

FFS _存储/ETC/FDFS /存储. conf start

``五、测试验证

1 .观察集群的状态

mv/etc/fdfs /客户端. conf .样本/etc/fdfs /客户端

.conf mkdir /data1/fdfs/client -p #修改base_path sed -i 's:base_path=/home/yuqing/fastdfs:base_path=/data1/fdfs/client:g' /etc/fdfs/client.conf #修改tracker地址 sed -i 's/tracker_server=192.168.0.197:22122/tracker_server=10.10.10.11:22122/g' /etc/fdfs/client.conf #查看监控信息、查看storage的状态是否为ACTIVE fdfs_monitor /etc/fdfs/client.conf ```

2. 验证上传\下载\删除cd

#上传后会返回一个以gropu开头的ID fdfs_upload_file /etc/fdfs/client.conf xxx.txt group1/M00/00/00/ChxS9l2gL5KAPQExAAAABKV9Avc785.txt #下载时指定ID,并可以指定下载后的文件名,例如:xxx1.txt fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/ChxS9l2gL5KAPQExAAAABKV9Avc785.txt xxx1.txt #删除时指定ID fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/ChxS9l2gL5KAPQExAAAABKV9Avc785.txt ``` --- `分隔线`:**若是通过程序直接读写文件,到此FastDFS集群部署完成。若是程序只负责写,需要通过Nginx以域名的方式访问文件,需要继续执行以下步骤。** ---

六、FastDFS与Nginx整合

1. 下载并修改fastdfs-nginx-module

wget -O fastdfs-nginx-module-master.zip https://codeload.github.com/happyfish100/fastdfs-nginx-module/zip/master unzip fastdfs-nginx-module-master.zip sed -i 's:/usr/local/include:/usr/include/fastdfs /usr/include/fastcommon:g' fastdfs-nginx-module-master/src/config ```

2. 下载Nginx源码包并编译

wget http://nginx.org/download/nginx-1.16.1.tar.gz tar xf nginx-1.16.1.tar.gz mkdir /usr/local/nginx #安装nginx依赖 yum install zlib pcre pcre-devel openssl openssl-devel gd-devel -y #编译nginx ./configure --prefix=/usr/local/nginx --with-http_realip_module \ --with-http_sub_module --with-http_stub_status_module \ --with-http_gzip_static_module --with-http_image_filter_module \ --with-http_ssl_module --add-module=/opt/soft/fastdfs-nginx-module-master/src/ make -j 4 make install ```

3. 配置mod_fastdfs

#复制mod_fastdfs.conf cp fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/ cp fastdfs-master/conf/mime.types /etc/fdfs/ cp fastdfs-master/conf/http.conf /etc/fdfs/ #修改mod_fastdfs.conf配置 mkdir /data1/fdfs/mod -p #修改base_path sed -i 's:base_path=/tmp:base_path=/data1/fdfs/mod:g' /etc/fdfs/mod_fastdfs.conf #修改tracker地址 sed -i 's/tracker_server=tracker:22122/tracker_server=10.10.10.11:22122/g' /etc/fdfs/mod_fastdfs.conf sed -i '/^tracker_server/atracker_server=10.10.10.12:22122' /et19c/fdfs/mod_fastdfs.conf #修改文件存储目录 sed -i 's:store_path0=/home/yuqing/fastdfs:store_path0=/data1/fdfs/storage/data:g' /etc/fdfs/mod_fastdfs.conf #若有n个存储数据目录(数据盘),需要增加store_path1,2,3,(n-1),并修改store_path_count=n #若被访问的url中要包括上传文件后返回ID中的group,例如group0/M0/00/xx,则需要修改url_have_group_name = true sed -i 's/url_have_group_name = false/url_have_group_name = true/g' /etc/fdfs/mod_fastdfs.conf #当整个集群有多个group时(横向扩展时使用),需要修改group_count=n,n为group个数,并增加group对应的信息。例如: #[group1] #group_name=group1 #storage_server_port=23000 #store_path_count=2 #store_path0=/home/yuqing/fastdfs #store_path1=/home/yuqing/fastdfs1 ``` ### 4. 创建nginx配置文件 ``` bash cat fdfs.conf server { listen 8888; server_name localhost; location ~/group([1-9])/M0([0-9])/{ ngx_fastdfs_module; } } ```

5. 验证

curl localhost:8888/group1/M00/00/00/ChxS9l2gL5KAPQExAAAABKV9Avc785.txt

6. 配置域名反向代理到两个节点的nginx模块

cat file.xxxx.com.conf upstream fdfsfile { server 10.10.10.11:8888; server 10.10.10.12:8888 backup; } server { listen 443 ssl; server_name file.xxxx.com; ssl_certificate /usr/local/nginx/conf/ssl/xxxx.com.pem; ssl_certificate_key /usr/local/nginx/conf/ssl/xxxx.com.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!LOW:!aNULL:!eNULL; ssl_prefer_server_ciphers on; location / { valid_referers *.xxxx.com; if ($invalid_referer) { return 403; } proxy_pass http://fdfsfile; proxy_redirect off; proxy_set_header HOST $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 100m; client_body_buffer_size 1024k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 32k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }

扫描二维码推送至手机访问。

版权声明:本文由花开半夏のブログ发布,如需转载请注明出处。

本文链接:https://www.zhangshilong.cn/work/26482.html

分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。