前言:该篇博客需要使用到的安装包有:FastDFS_v5.08.tar.gz,fastdfs-nginx-module_v1.16.tar.gz,libfastcommon-master.zip,nginx-1.10.0.tar.gz(这四个是必须的),若没有请自行下载。或者联系作者微信免费提供:微信昵称 unhejing
1.安装依赖
(1)GCC用来对C语言代码进行编译运行(FastDFS是由c语言写的),使用yum命令安装:
sudo yum -y install gcc
(2)安装unzip工具(用于解压安装包)
sudo yum install -y unzip zip
(3)安装libevent
sudo yum -y install libevent
(4)安装Nginx所需依赖
sudo yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel
(5)安装libfastcommon-master(这个没有yum包,只能通过编译安装)
unzip libfastcommon-master.zip
进入解压完成的目录:
cd libfastcommon-master
编译并且安装:
sudo ./make.sh sudo ./make.sh install
由此结束,所有依赖都安装完了,接来下是安装FastDFS
2. 安装FastDFS
(1)编译安装(解压安装包)
tar -xvf FastDFS_v5.08.tar.gz
(2)进入解压目录
cd FastDFS
(3)编译安装
sudo ./make.sh sudo ./make.sh install
(4)校验安装结果
1)安装完成,我们就可以在`/etc/init.d/`目录,通过命令`ll /etc/init.d/ | grep fdfs`,如图:
2) 配置文件在/etc/fdfs
tarcker.conf.sample 是tracker的配置文件模板
storage.conf.sample 是storage的配置文件模板
client.conf.sample 是客户端的配置文件模板
3.启动tracker
编辑tracker配置
(1)模板文件进行赋值和重命名:
cd /etc/fdfs sudo cp tracker.conf.sample tracker.conf
(2)编辑配置文件
sudo vim tracker.conf
指定日志输出目录:base_path=/home/fastdfs/tracker
(3) 创建目录
sudo mkdir -p /home/fastdfs/tracker
(4)启动tracker
可以使用 sh /etc/init.d/fdfs_trackerd 启动,不过安装过程中,fdfs已经被设置为系统服务,我们可以采用熟悉的服务启动方式
sudo service fdfs_trackerd start
# 启动fdfs_trackerd服务,停止用stop
(5)设置开机自启
sudo chkconfig fdfs_trackerd on
4.启动storage
编辑storage配置
(1)模板文件进行赋值和重命名:
cd /etc/fdfs sudo cp storage.conf.sample storage.conf
(2)编辑配置文件
sudo vim storage.conf
指定日志输出目录:
base_path=/home/fastdfs/storage # storage的数据和日志存放目录
store_path0=/home/fastdfs/storage # storage的上传文件存放路径
tracker_server=192.168.56.101:22122 # tracker的地址
(3)创建目录
sudo mkdir -p /home/fastdfs/storage
(4)启动storage
sudo service fdfs_storaged start
(5)开机自启
sudo chkconfig fdfs_storaged on
由此tracker和storage启动完成,查看进程
ps -ef | grep fdfs
5.安装Nginx及FastDFS模块
(1)FastDFS的Nginx模块
解压:
tar -xvf fastdfs-nginx-module_v1.16.tar.gz
1)配置config文件
# 进入配置目录
cd /home/fastdfs-nginx-module/src
# 修改配置
vim config
# 执行下面命令(将配置中的/usr/local改为/usr):
:%s+/usr/local/+/usr/+g
2) 配置mod_fastdfs.conf
# 将src目录下的mod_fastdfs.conf复制到 /etc/fdfs目录:
sudo cp mod_fastdfs.conf /etc/fdfs/
# 编辑该文件
sudo vim /etc/fdfs/mod_fastdfs.conf
修改一下配置:
connect_timeout=10 # 客户端访问文件连接超时时长(单位:秒)
tracker_server=192.168.56.101:22122 # tracker服务IP和端口
url_have_group_name=true # 访问链接前缀加上组名
store_path0=/home/fastdfs/storage # 文件存储路径
复制 FastDFS的部分配置文件到/etc/fdfs目录
cd /home/FastDFS/conf/ cp http.conf mime.types /etc/fdfs/
6.安装Nginx
(1)解压
tar -xvf nginx-1.10.0.tar.gz
(2)配置
cd /home/nginx-1.10.0/ sudo ./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx --add-module=/home/fastdfs-nginx-module/src
(3)编译安装
sudo make && sudo make install
(4)配置nginx整合fastdfs-module模块
我们需要修改nginx配置文件,在/opt/nginx/config/nginx.conf文件中:
sudo vim /opt/nginx/conf/nginx.conf
在service下添加:
# 监听域名中带有group的,交给FastDFS模块处理
location ~/group([0-9])/ {
ngx_fastdfs_module;
}
(5)启动nginx
nginx # 启动
nginx -s stop # 停止
nginx -s reload # 重新加载配置
综上就是所有fastDFS所有的配置。
注:
1.所有 Storage 节点都启动之后,可以在 Storage的任何 节点上使用如下命令查看集群信息:
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
2.集群配置
说明:
192.168.31.51 group1 #需开启storage和nginx,tracker服务不用启动(配置成功后可通过http://192.168.31.51/group1/M00/00/XXXXX.jpg访问)
192.168.31.52 group2 #需开启storage和nginx,tracker服务不用启动(配置成功后可通过http://192.168.31.52/group2/M00/00/XXXXX.jpg访问)
192.168.31.46 tracker1 对应group1
192.168.31.47 tracker2 对应group2
(1)编辑每个storage服务器上的 mod_fastdfs.conf配置文件
vim /etc/fdfs/mod_fastdfs.conf
#修改内容 connect_timeout=10 #(51为group1)、(52为group2)--后期加入其他集群直接复制该配置即可。只需修改分组,若是添加分组的话,需要修改其他storage服务器上的该配置文件。新增group和tracker。 group_name=group1 #当前storage的分组 tracker_server=192.168.31.46:22122 tracker_server=192.168.31.47:22122 url_have_group_name = true store_path0=/home/fastdfs/storage group_count=2 #设置分组数 #下面注释打开并设置如下 [group1] group_name=group1 storage_server_port=23000 store_path_count=1 store_path0=/home/fastdfs/storage #store_path1=/home/yuqing/fastdfs1 # group settings for group #2 # since v1.14 # when support multi-group, uncomment following section as neccessary [group2] group_name=group2 storage_server_port=23000 store_path_count=1 store_path0=/home/fastdfs/storage
(2)配置跟踪服务器的反向代理
1)安装ngx_cache_purge模块,ngx_cache_purge的作用:用于清除指定url的缓存(按需安装,如果图片会随时更新则建议安装,不经常更新则可以不用安装)
下载地址:http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
2)安装nginx,(编译时不用添加fastdfs-nginx-module模块,直接:sudo ./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx即可)
3)配置nginx(部分配置如下),然后就可以访问了192.168.31.46和192.168.31.47会自动代理到51,52storage存储服务器上。记得打开端口!
#group1的服务设置
upstream fdfs_group1 {
server 192.168.31.51 weight=1 max_fails=2 fail_timeout=30s;
#server 192.168.156.8:8888 weight=1 max_fails=2 fail_timeout=30s;
}
#group2的服务设置
upstream fdfs_group2 {
server 192.168.31.52 weight=1 max_fails=2 fail_timeout=30s;
#server 192.168.156.10:8888 weight=1 max_fails=2 fail_timeout=30s;
}
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location /group1/M00 {
proxy_next_upstream http_502 http_504 error timeout invalid_header;
#proxy_cache http-cache;
#proxy_cache_valid 200 304 12h;
#proxy_cache_key $uri$is_args$args;
#对应group1的服务设置
proxy_pass http://fdfs_group1;
expires 30d;
}
location /group2/M00 {
proxy_next_upstream http_502 http_504 error timeout invalid_header;
#proxy_cache http-cache;
#proxy_cache_valid 200 304 12h;
#proxy_cache_key $uri$is_args$args;
#对应group2的服务设置
proxy_pass http://fdfs_group2;
expires 30d;
}
location / {
root html;
index index.html index.htm;
}
}
4)VIP虚拟代理转发到tracker。(目的是由一个请求地址,自动代理到其他tracker)
192.168.11.20用于转发 nginx配置:
upstream fastdfs_tracker {
server 192.168.31.46 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.31.47 weight=1 max_fails=2 fail_timeout=30s;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location ~/group([0-9])/ {
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;
proxy_pass http://fastdfs_tracker;
}
}
3.若访问日志图片报错:
ERROR - file: /root/fastdfs/fastdfs-nginx-module/src/common.c, line: 877, stat file: /root/fastdfs/storage/data/00/00/wKgLGl4FZAeAbKLsAARRFe73PtQ404.png fail, errno: 13, error info: Permission denied
此问题是nginx权限造成的,在nginx配置文件头部加上user root;即可,如图:
4.java代码上传部分图片报错
java.lang.IllegalArgumentException: Numbers of source Raster bands and source color space components
引入依赖:
<dependency> <groupId>com.twelvemonkeys.imageio</groupId> <artifactId>imageio-jpeg</artifactId> <version>3.4.1</version> </dependency>
未解决的疑问?
192.168.31.51(group1),192.168.31.51(group2) storage,这两台分别设置mod_fastdfs.conf为group1和group2,并且关联两个tracker。那么从192.168.31.46,192.168.31.47 两个traker都可以访问到group1和group2的资源,此种情况我认为是正常。
但是我新建了一个192.168.11.26的文件服务器用于测试,tracker和storage,nginx都在同一台服务器上,配置mod_fastdfs.conf与192.168.31.46,47,51,52这四台服务器没有任何相关的。此时上传图片正常也在此台服务器上。但是此台服务器竟然可以访问192.168.31.51上group1的资源。从192.168.31.46,47,51,52这四台上也能访问192.168.11.26上的图片资源。难道分组group相同,tracker不同也可以互相访问吗?难道可以直接通过group相同就互通?
到此这篇centos7下安装FastDFS分布式文件存储系统的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/haskellbc/10624.html