Lison
, v1.0.0, 2019.06.11
系统:centos 7
nginx:nginx-1.13.9
fastdfs:fastdfs-5.11
yum -y install make cmake gcc gcc-c++ bison-devel ncurses-devel autoconf automake lrzsz zip unzip netstat-nat libevent.x86_64 libevent-devel.x86_64
yum -y install zlib zlib-devel openssl openssl-devel pcre-devel
下载链接
解压:unzip libfastcommon-master.zip
如果没有权限给权限:chmod -R 777 libfastcommon-master
打开解压文件目录:cd libfastcommon-master
编译:./make.sh
安装:./make.sh install
如下图所示则安装成功:
设置软连接,即快捷方式
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
解压:tar zxvf fastdfs-5.11.tar.gz
打开文件夹:cd fastdfs-5.11
编译:./make.sh
安装:./make install
如下图所示则安装成功:
打开配置文件夹:cd /etc/fdfs 发现不是我们需要的,cp一下就好了
cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf
创建相关目录
mkdir -p /home/fastdft/fastdfs_tracker_log #tracker日志目录
mkdir –p /home/fastdft/fastdfs_storage_log #storage日志目录
mkdir –p /home/fastdft/fastdfs_storage_1_log #storage1日志目录
mkdir -p /home/fastdft/resource #文件目录
mkdir -p /home/fastdft/images #文件目录
chmod -R 777 /home/fastdft/
打开目录:cd /etc/fdfs/
编辑tracker.conf:vi tracker.conf
disabled=false #当前配置是否可用 false:可用 true:不可用
bind_addr= #是否绑定IP,不设置为不绑定
port=22122 #默认的端口 不冲突的话不要修改
connect_timeout=30 #针对socket套接字函数connect的连接超时时间设置
network_timeout=60 #设置网络超时,单位秒,发送或接收数据时,如果在超时时间之后依然不能进行,则本次网络通讯失败
base_path= /home/fastdft/fastdfs_tracker_log #日志文件 可根据需要修改
max_connections=256 #服务器支持的最大连接数
accept_threads=1 #工作线程数,通常设置为CPU数量
store_lookup=2 #上传组(卷)的方式:0轮询,1:指定,2:负载平衡(剩余空间最大选择)
store_group=group1#组名称很重要 如果上一参数选择1方式,即制定组名,当前参数用来设置指定的组,如果选择其他方式,当前参数无效
store_server=192.168.1.34:22122 #服务器IP:端口 ,IP根据本机IP来填写
store_path=0
http.server_port=9090 #http端口,使用Nginx来访问则不需要这个
注意复制的时候不要复制注释
group_name=group1 #组名称很重要,如果tracker.conf配置为指定组名的话要和tracker.conf配置的相同
base_path= /home/fastdft/fastdfs_storage_log #storaged服务日志目录
store_path0= /home/fastdft/resource #文件数据存放目录
tracker_server=192.168.1.34:22122 #服务器IP:端口 ,IP根据本机IP来填写
http.server_port=9091 #http端口,使用Nginx来访问则不需要这个
方式一:
启动:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
方式二:
创建软连接:ln -s /usr/bin/ fdfs_trackerd /usr/local/bin
启动:service fdfs_trackerd start
方式一:
启动:/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
方式二:
创建软连接:n -s /usr/bin/fdfs_storaged /usr/local/bin
启动服务:service fdfs_storaged start
第一次启动的时候最好先用方式一启动这样可以看到启动是否出错,也可以查看日志
查看是否启动成功:netstat -unltp | grep fdfs
如上图所示说明启动成功
然后打开文件数据的存放目录,就是在storage.conf配置文件中的配置的store_path0的路径
查看tracker上是否有相应的存储节点,即 tracker和storage是否连接起来了
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
看到图中的字样便成功了,这个时候安装任务可以说就算完成了
编辑client.conf:vim /etc/fdfs/client.conf
base_path=/home/fastdft/fastdfs_client_log #tracker服务器文件路径
tracker_server=192.168.1.34:22122#tracker服务器IP地址和端口号
http.tracker_server_port=9090# tracker 服务器的 http 端口号,必须和tracker的设置对应
使用以下命令,进行测试,其中login.dat文件是在服务器的另一个地方
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /home/fastdft/test.txt 192.168.1.34:23000
画红框的为上传之后的文件
删除命令:/usr/bin/fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/7D/rBAXIlz_Y1WAAGxDAAAABXu8q1M798.txt
这个时候就可以使用java api进行上传、同步和下载,但是想要通过http方式进行下载,还需要配置nginx
解压:unzip fastdfs-nginx-module-master
打开:cd fastdfs-nginx-module-master/src
编辑:vim mod_fastdfs.conf
tracker_server=192.168.1.34:22122
group_name=group1
url_have_group_name = true
store_path0=/home/fastdft/resource
将相关配置拷贝到etc/fdfs下
cp mod_fastdfs.conf /etc/fdfs
cd fastdfs-5.11/conf/
cp anti-steal.jpg http.conf mime.types /etc/fdfs/
创建软连接
ln -s /home/fastdft/resource /home/fastdft/resource/data/M00
配置前应注意,安装nginx
注意:如果已经安装过nginx需要重新编译安装,不然会报:unknown directive "ngx_fastdfs_module"的错误
检查:./configure --prefix=/usr/local/nginx --add-module=/home/download/fastdfs/fastdfs-nginx-module-master/src
编译和安装:make&makeinstall
最后在nginx的配置文件中添加一下配置即可
server {
listen 80;
server_name 域名;
location / {
root html;
index index.html index.htm;
}
location /group1/M00 {
alias /home/fastdft/resource/;
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
这时候在浏览器中输入 就会下载
http://域名/group1/M00/00/7D/rBAXIlz_Y1WAAGxDAAAABXu8q1M798.txt