fastdfs5.11

--软件包下载 for centos7
https://pan.baidu.com/s/16ZpdAZk9IxWibNkG3ltqsg    提取码:12ie
--1.1 安装libfastcommon
--上传软件包到/opt
cd /opt
unzip libfastcommon-master.zip
cd libfastcommon-master
./make.sh
./make.sh install

ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
--File exists
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

--1.2安装FastDFS
cd /opt
unzip fastdfs-5.11_2.zip
cd fastdfs-5.11
./make.sh
./make.sh install
cd /etc/fdfs/
cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf

1.3安装tracker
mkdir -p /usr/yong.cao/dev/fastdfs/fastdfs_tracker
vim /etc/fdfs/tracker.conf

disabled=false #默认开启
port=22122 #默认端口号
base_path=/usr/yong.cao/dev/fastdfs/fastdfs_tracker #我刚刚创建的目录
http.server_port=6666 #默认端口是8080

service fdfs_trackerd start
--如果不能启动,或提示用systemctl可改用命令:
#systemctl start fdfs_trackerd

--目录中多了data和log两个目录
ll /usr/yong.cao/dev/fastdfs/fastdfs_tracker/
chmod +x /etc/rc.d/rc.local
vim /etc/rc.d/rc.local

service fdfs_trackerd start

netstat -unltp|grep fdfs

--1.4 安装storage
mkdir -p /usr/yong.cao/dev/fastdfs/fastdfs_storage_data
mkdir -p /usr/yong.cao/dev/fastdfs/fastdfs_storage
ll /usr/yong.cao/dev/fastdfs/

--base_path,base_path0,store_path0修改为正确的路径web可以访问图片
vim /etc/fdfs/storage.conf

disabled=false
group_name=group1 #组名,根据实际情况修改
port=23000 #设置storage的端口号,默认是23000,同一个组的storage端口号必须一致
base_path=/usr/yong.cao/dev/fastdfs/fastdfs_storage #设置storage数据文件和日志目录
store_path_count=1 #存储路径个数,需要和store_path个数匹配
base_path0=/usr/yong.cao/dev/fastdfs/fastdfs_storage/data #实际文件存储路径
tracker_server=192.168.92.97:22122 #我CentOS7的ip地址
http.server_port=8888 #设置 http 端口号

#修改store_path0
store_path0=/usr/yong.cao/dev/fastdfs/fastdfs_storage/data

ln -s /usr/bin/fdfs_storaged /usr/local/bin
service fdfs_storaged start
--如果不能启动,或提示用systemctl可改用命令:
#systemctl start fdfs_storaged
vim /etc/rc.d/rc.local

service fdfs_storaged start

netstat -unltp | grep fdfs

--校验整合,storage是否注册到了tracker中去
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

--成功后可以看到:
ip_addr = 192.168.92.97 (localhost.localdomain) ACTIVE


vim /etc/fdfs/client.conf

base_path=/usr/yong.cao/dev/fastdfs/fastdfs_tracker #tracker服务器文件路径
tracker_server=192.168.92.97:22122 #tracker服务器IP地址和端口号
http.tracker_server_port=6666 # tracker 服务器的 http端口号,必须和tracker的设置对应起来

--1.5 FastDFS整合nginx
--测试
mkdir -p /usr/yong.cao/ftp
--上传architecture-V4.8.jpg到/usr/yong.cao/ftp
/usr/bin/fdfs_upload_file  /etc/fdfs/client.conf  /usr/yong.cao/ftp/architecture-V4.8.jpg
--成功后会返回图片的路径:group1/M00/00/00/architecture-V4.8.jpg
组名:group1
磁盘:M00
目录:00/00
文件名称:wKhcYV5uHJuAFbgKACFk3PeyYRw5.8.jpg

--data下有256个1级目录,每级目录下又有256个2级子目录,总共65536个文件
cd /usr/yong.cao/dev/fastdfs/fastdfs_storage_data
ls
cd 00
ls

--http协议,我们去浏览器用http请求访问一下刚刚的图片:此时无法访问,需要集成nginx模块做反向代理
http://192.168.92.97:8888/group1/M00/00/00/wKhcYV5uHJuAFbgKACFk3PeyYRw5.8.jpg

--FastDFS的nginx模块安装
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel

mkdir -p /usr/yong.cao/dev/nginx
mv nginx-1.12.0.tar.gz /usr/yong.cao/dev/nginx
mv fastdfs-nginx-module-1.20.zip /usr/yong.cao/dev/nginx
cd /usr/yong.cao/dev/nginx/
tar -zxvf nginx-1.12.0.tar.gz
--不能用fastdfs-nginx-module-master.zip
unzip fastdfs-nginx-module-1.20.zip

--设置软连接不可以  ln -s /usr/include /usr/local/include
vim /usr/yong.cao/dev/nginx/fastdfs-nginx-module-1.20/src/config 修改为,保持原位置不变

    ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
    CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

cd /usr/yong.cao/dev/nginx/nginx-1.12.0
./configure --prefix=/usr/local/nginx --add-module=/usr/yong.cao/dev/nginx/fastdfs-nginx-module-1.20/src  #解压后fastdfs-nginx-module所在的位置
--如果报错的话,很可能是版本的原因
--/opt/fastdfs-nginx-module-master/src/config文件按照如上修改,解决error:/usr/include/fastdfs/fdfs_define.h:15:27: fatal error: common_define.h: No such file or directory
--忽略 make[1]: Leaving directory `/usr/yong.cao/dev/nginx/nginx-1.12.0'
make
make install

--root /usr/yong.cao/dev/fastdfs/fastdfs_storage_data/data,fastdfs_storage_data修改为fastdfs_storage
--8888端口应该与/etc/fdfs/storage.conf的http.server_port一致
vi /usr/local/nginx/conf/nginx.conf

server {
        listen       8888;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }

        location ~/group1/M00 {
            root /usr/yong.cao/dev/fastdfs/fastdfs_storage/data;
            ngx_fastdfs_module;
        }
}

cd /opt/fastdfs-5.11/
cp http.conf mime.types /etc/fdfs/
scp /usr/yong.cao/dev/nginx/fastdfs-nginx-module-1.20/src/mod_fastdfs.conf /etc/fdfs/

--fdfs的对应nginx模块的配置,修改为storage.conf对应目录
vim /etc/fdfs/mod_fastdfs.conf

base_path=/usr/yong.cao/dev/fastdfs/fastdfs_storage  #保存日志目录
tracker_server=192.168.92.97:22122 #tracker服务器的IP地址以及端口号
storage_server_port=23000 #storage服务器的端口号
url_have_group_name = true #文件 url 中是否有 group 名
store_path0=/usr/yong.cao/dev/fastdfs/fastdfs_storage/data   #存储路径
group_count = 3 #设置组的个数,事实上这次只使用了group1

--#在文件的最后,设置group
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/usr/yong.cao/dev/fastdfs/fastdfs_storage/data
store_path1=/usr/yong.cao/dev/fastdfs/fastdfs_storage/data

# 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=/usr/yong.cao/dev/fastdfs/fastdfs_storage/data

[group3]
group_name=group3
storage_server_port=23000
store_path_count=1
store_path0=/usr/yong.cao/dev/fastdfs/fastdfs_storage/data

--ln  -s  /usr/yong.cao/dev/fastdfs/fastdfs_storage_data/data/ /usr/yong.cao/dev/fastdfs/fastdfs_storage_data/data/M00
ln  -s  /usr/yong.cao/dev/fastdfs/fastdfs_storage/data/ /usr/yong.cao/dev/fastdfs/fastdfs_storage/data/M00
--启动nginx:
/usr/local/nginx/sbin/nginx
--打开web
http://192.168.92.97:9999

--配置tracker nginx cd /usr/yong.cao/dev/nginx mkdir -p /usr/yong.cao/dev/nginx2 tar -zxvf nginx-1.12.0.tar.gz -C /usr/yong.cao/dev/nginx2/ cd /usr/yong.cao/dev/nginx2/nginx-1.12.0 ./configure --prefix=/usr/local/nginx2 --add-module=/usr/yong.cao/dev/nginx/fastdfs-nginx-module-1.20/src #解压后fastdfs-nginx-module所在的位置 make make install --添加location /group1/M00,注释location / { vim /usr/local/nginx2/conf/nginx.conf upstream fdfs_group1 { server 127.0.0.1:9999; } server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location /group1/M00 { proxy_pass http://fdfs_group1; } #location / { # root html; # index index.html index.htm; #} #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } --启动nginx: /usr/local/nginx2/sbin/nginx --无法访问上传的图片,http测试,请求访问一下刚刚的图片 group1/M00/00/00/wKhcYV5uSBGAU7AbACFk3PeyYRw6.8.jpg /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/yong.cao/ftp/architecture-V4.8.jpg group1/M00/00/00/wKhcYV5uSBGAU7AbACFk3PeyYRw6.8.jpg ll /usr/yong.cao/dev/fastdfs/fastdfs_storage/data/M00/00/00 http://192.168.92.97:8888/group1/M00/00/00/wKhcYV5uHJuAFbgKACFk3PeyYRw5.8.jpg --error:404 Not Found,目录问题,修改/etc/fdfs/storage.conf, /etc/fdfs/mod_fastdfs.conf的目录,并重启文件系统服务 systemctl restart fdfs_storaged http://192.168.92.97:8888/group1/M00/00/00/wKhcYV5uSBGAU7AbACFk3PeyYRw6.8.jpg -------------------------------- 防火墙端口设置 成功了,为什么还要讲这个呢。因为有些同学到这里,还是不到访问,很可能是防火墙没有开启相应的端口。防火墙这个东西我建议大家还是不要关闭,虽然麻烦了一点。 查看已开启的端口: firewall-cmd --zone=public --list-ports 20880/tcp 80/tcp 2181/tcp 23000/tcp 22122/tcp 9999/tcp 这两个端口要开启,到时候下一篇讲fastdfs-client-javas可能会造成无法连接。 9999和80端口是提供给nginx访问的。 开放端口号命令:–permanent表示永久生效,不加的话,重启后不生效 firewall-cmd --zone=public --add-port=23000/tcp --permanent #开户端口号 CentOS7 防火墙相关命令: systemctl enable firewalld.service #开启防火墙 systemctl stop firewalld.service #关闭防火墙(开机会仍会启动) systemctl disable firewalld.service #禁用防火墙(开机后不再启动) -------------------------------------------------------------------------------------------------------------------------- CentOS7搭建FastDFS V5.11分布式文件系统及Java整合详细过程(四) 1.下载fastdfs-client-java 1.1 下载源码 在前面,FastDFS是环境都部署好了,接下来的整合,将变得相当容易。在我之前的教程里,已经将fastdfs-client-java-master下载好了。 如果下载有问题,或者连接时有问题。我这里提供我测试通过,目前最新版本fastdfs-client-java V1.26的下载链接。 1.2 maven install 解压后,在eclipse中导入maven项目:import->maven->existing maven projects。 修改pom.xml 第一个plugins是必需要的,是maven用来编译的插件,第二个是maven打源码包的,可以不要。
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <encoding>UTF-8</encoding> <source>${jdk.version}</source> <target>${jdk.version}</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>3.0.1</version> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> </plugins> </build> 直接项目右键,run as maven install 我本地机的是jdk1.8编译的。我在作者的源码中发现,最新版本用jdk1.6就可以编译成功。 install成功后,fastdfs-client-java就成功的被安装到本地仓库了。 [INFO] --- maven-install-plugin:2.4:install (default-install) @ fastdfs-client-java --- [INFO] Installing C:workspacefastdfs-client-java argetfastdfs-client-java-1.27-RELEASE.jar to C:Jerold.Tsaomaven epositoryorgcsourcefastdfs-client-java1.27-RELEASEfastdfs-client-java-1.27-RELEASE.jar [INFO] Installing C:workspacefastdfs-client-javapom.xml to C:Jerold.Tsaomaven epositoryorgcsourcefastdfs-client-java1.27-RELEASEfastdfs-client-java-1.27-RELEASE.pom [INFO] Installing C:workspacefastdfs-client-java argetfastdfs-client-java-1.27-RELEASE-sources.jar to C:Jerold.Tsaomaven epositoryorgcsourcefastdfs-client-java1.27-RELEASEfastdfs-client-java-1.27-RELEASE-sources.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 7.879 s [INFO] Finished at: 2017-06-17T22:24:11+08:00 [INFO] Final Memory: 12M/113M [INFO] ------------------------------------------------------------------------ 2.编写工具类: 把fdfs_client.conf文件复制一份放到自己项目的resource下面: 修改tracker.server,其它的都不用动: tracker_server = 192.168.92.97:22122 我的工具类是这样写的: 3.Spring MVC上传图片 Spring MVC实现上传: 值得注意的是Spring MVC要支持上传文件需要在spring-mvc配置文件中添加: <!-- 图片上传 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/> 以上实现细节提供原码下载: https://download.csdn.net/download/m0_37797991/9873329
原文地址:https://www.cnblogs.com/buffercache/p/12501465.html