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:\workspace\fastdfs-client-java\target\fastdfs-client-java-1.27-RELEASE.jar to C:\Jerold.Tsao\maven\repository\org\csource\fastdfs-client-java\1.27-RELEASE\fastdfs-client-java-1.27-RELEASE.jar [INFO] Installing C:\workspace\fastdfs-client-java\pom.xml to C:\Jerold.Tsao\maven\repository\org\csource\fastdfs-client-java\1.27-RELEASE\fastdfs-client-java-1.27-RELEASE.pom [INFO] Installing C:\workspace\fastdfs-client-java\target\fastdfs-client-java-1.27-RELEASE-sources.jar to C:\Jerold.Tsao\maven\repository\org\csource\fastdfs-client-java\1.27-RELEASE\fastdfs-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