FastDFS安装配置(CentOS7)

 FastDFS安装配置,这个东东是什么请百度,下面是我成功使用CentOS7搭建成功的一个例子。

下载文件全部放在/root/downloads文件夹下
一、安装FastDFS
1、环境安装:yum -y install gcc gcc-c++
2、下载:wget https://github.com/happyfish100/libfastcommon/archive/V1.0.36.tar.gz 
3、解压到目录:tar xf V1.0.36.tar.gz
4、进入解压目录内:cd libfastcommon-1.0.36
5、编译:./make.sh  -j 4  (4核方式编译快些-注意服务器核数)
6、安装:./make.sh install 
7、记录默认安装位置:
/usr/include/fastcommon  common_define.h
8、(cd ~/downloads)下载FastDFS压缩包:wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz 
9、解压:tar xf V5.11.tar.gz 
10、进入解压目录内:cd fastdfs-5.11
11、编译:./make.sh  -j 4  (4核方式编译快些)
12、安装:./make.sh install 
13、记录默认安装位置:
/usr/include/fastdfs    ../common/fastdfs_define.h
14、进入目录:cd /etc/fdfs/ ,查看是否有4个文件:ll (没有重新编译安装 cd ~/downloads,第10步)
15、进入目录:cd /etc/fdfs/ ,复制文件: 
cp client.conf.sample client.conf 
cp storage.conf.sample storage.conf 
cp tracker.conf.sample tracker.conf 
cp storage_ids.conf.sample storage_ids.conf 
16、创建tracker基础数据目录,即base_path对应的目录 
在家目录(cd ~)创建:mkdir -p /root/data/fastdfs/tracker 
17、复制tracker基础数据目录路径:cd data/fastdfs/tracker ,pwd查看复制:/root/data/fastdfs/tracker 
18、回到cd /etc/fdfs/,修改配置 vim tracker.conf :
port=22122 (默认)
base_path=/root/data/fastdfs/tracker 
http.server_port=80 
19、如果有防火墙:
开启端口:firewall-cmd --permanent --zone=public --add-port=22122/tcp 
重启防火墙:firewall-cmd --reload 
查看防火墙:firewall-cmd --list-port 
20、fdfs命令可以在cd /usr/bin下 fdfs_  tab键查看
21、启动Tracker,初次成功启动,会在 /root/data/fastdfs/tracker (配置的base_path)下创建 data、logs 两个目录,可查看是否报错
启动命令:service fdfs_trackerd start 
关闭Tracker命令: service fdfs_trackerd stop 
查看端口:netstat -lntp | grep 22122 或 ps -ef | grep trakcer
22、设置Tracker开机启动 :chkconfig --add fdfs_trackerd 
查看开机启动任务:chkconfig --list  ,
23、创建存储器数据和日志目录地址文件夹:mkdir -p /root/data/fastdfs/storage
24、进入 cd /etc/fdfs,修改配置:vim storage.conf :
指定此 storage server 所在组(卷),根据自身需求更改: 
group_name=group1 
指定storage server 服务端口,默认即可: 
port=23000 
心跳间隔时间,单位为秒 (这里是指主动向 tracker server 发送心跳),默认即可: 
heart_beat_interval=30 
Storage 数据和日志目录地址,该目录必须手动创建: 
base_path=/root/data/fastdfs/storage
存放文件时 storage server 支持多个路径。这里配置存放文件的基路径数目,通常只配一个目录。 
store_path_count=1 
逐一配置 store_path_count 个路径,索引号基于 0。如果不配置 store_path0,那它就和 base_path 对应的路径一样。 
store_path0=/root/data/fastdfs/storage
FastDFS 存储文件时,采用了两级目录。这里配置存放文件的目录个数。 如果本参数只为 N(如: 256),那么 storage server 在初次运行时,会在 store_path 下自动创建 N * N 个存放文件的子目录。 
subdir_count_per_path=256 
tracker_server 的列表 ,会主动连接 tracker_server,有多个 tracker server 时,每个 tracker server 写一行。 
tracker_server=rootTracker:22122  (如果这里配置需要hosts也配置,也可配置IP:如192.168.1.104)
允许系统同步的时间段 (默认是全天) 。一般用于避免高峰同步产生一些问题而设定。 
sync_start_time=00:00 
sync_end_time=23:59 
访问端口 :http.server_port=80
25、(如果有)防火墙中打开存储器端口
开启端口:firewall-cmd --permanent --zone=public --add-port=23000/tcp
重启防火墙:firewall-cmd --reload 
查看防火墙:firewall-cmd --list-port 
26、(默认IP)如果上面tracker地址配置的不是ip地址,要修改host文件,使之与ip对应: 
编辑:vim /etc/hosts :
添加如下内容,下面ip为虚拟机ip: 
192.168.1.104 rootTracker
27、启动Storage,启动Storage前确保Tracker是启动的。初次启动成功,会在 /root/data/fastdfs/storage 目录下创建 data、 logs 两个目录,该目录下有server信息。 
启动命令:service fdfs_storaged start
查看 Storage 是否成功启动,23000 端口正在被监听,则 Storage 启动成功。 
netstat -ntlp | grep 23000 或  lsof -i:23000 或 netstat -ntlp | grep fdfs 没有看到信息就是有问题
关闭 Storage:service fdfs_storaged stop
查看Storage和Tracker是否在通信: fdfs_monitor /etc/fdfs/storage.conf  , 如果看到 server id count:0就是有问题,看文件是否漏和重启
在打印结果中,看到 group count: 1 ,表示正在通信。
设置 Storage 开机启动:chkconfig fdfs_storaged on
查看开机启动任务:chkconfig --list  , 
可以看到在 /root/data/fastdfs/storage/data 目录下,创建了N*N个子目录,用于存储文件。
如果出现问题,查看进程 netstat -lntp | grep 22122 ,杀掉进程重启:kill -9 进程ID;
注意:要先启动tracker服务,再启动storage服务,最后查看是否都有data和logs文件夹
查看是否通讯:fdfs_monitor /etc/fdfs/storage.conf
28、创建文件夹:mkdir -p /root/data/fastdfs/client,
打开:vim /etc/fdfs/client.conf ,编辑:
Client 的数据和日志目录,该目录必须手动创建: 
base_path=/root/data/fastdfs/client
Tracker端口 
tracker_server=rootTracker:22122 (使用IP如:192.168.1.104:22122)
Http访问端口 
http.tracker_server_port=80  (默认)
29、测试是否成功,上传试试看是否返回路径
先手动拖一张图片到linux,
上传命令(在图片位置cd ~):fdfs_upload_file /etc/fdfs/client.conf /root/02.jpg 
返回路径就表示成功!
路径类似:group1/M00/00/00/wKgBaFv8ELmACTGXAAIWRj8eKZQ239.jpg,返回的文件ID由group、存储目录、两级子目录、fileid、文件后缀名(由客户端指定,主要用于区分文件类型)拼接而成。
查看文件cd /root/data/fastdfs/storage/data/00/00

二、安装Nginx,因为图片上传还需要容器查看(FastDFS还不支持http访问文件)
1、前言:Nginx安装环境准备工作
1) gcc准备:安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,查看是否安装gcc: 
yum list installed | grep gcc 
如果没有gcc环境,需要安装gcc和gcc-c++ ,执行命令安装: 
yum -y install gcc gcc-c++ 
2) PCRE准备:PCRE是一个Perl库,包括 Perl 兼容的正则表达式库。nginx的http模块使用PCRE来解析正则表达式,所以需要在Linux上安装PCRE库,执行安装命令: 
yum -y install pcre pcre-devel
3) zlib准备:zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库,运行安装命令: 
yum -y install zlib zlib-devel
4) openssl准备:OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。 
nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。运行安装命令: 
yum -y install openssl openssl-devel
2、下载Nginx(cd ~/downloads):wget https://nginx.org/download/nginx-1.14.0.tar.gz 
3、解压:tar -xf nginx-1.14.0.tar.gz 
4、进入解压目录编译安装: 
进入目录:cd nginx-1.14.0
配置Nginx启用 openssl密码库,并使用当前用户启动nginx,其余默认即可 
命令:./configure --with-http_ssl_module --user=root
5、编译 Nginx: make -j 4
6、安装:make install 
7、创建软链接(类似快捷方式),并启动 Nginx,设置开机启动:
查看:cd /usr/local/nginx/
命令:ln -s /usr/local/nginx/sbin/nginx /usr/bin/
启动命令:nginx
关闭Nginx:nginx -s stop 
重启Nginx:nginx -s reload 
查看是否启动成功: netstat -anp | grep nginx 或者 ps -ef | grep nginx
设置nginx开机启动 :vim /etc/rc.local 
最后面加一行: 
/usr/local/nginx/sbin/nginx
然后更改文件权限 
chmod 744 /etc/rc.d/rc.local
8、查看nginx的版本及模块 :nginx -V 
9、防火墙开启端口
开启端口:firewall-cmd --permanent --zone=public --add-port=23000/tcp
重启防火墙:firewall-cmd --reload 
查看防火墙:firewall-cmd --list-port 
10、修改配置
1)修改nginx.conf配置 
编辑文件:vim /usr/local/nginx/conf/nginx.conf ,内容如下:
#修改nginx启动用户,和系统启动用户一致,nginx默认启动用户为nobody,在nginx安装的时候已经指定为root用户
user  root;
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    server {
    #侦听端口
        listen       80;
        server_name  localhost;
      #修改映射地址,将http中的地址/group1/M00/映射为系统实际地址/root/data/fastdfs/storage/data/
      location /group1/M00/ { 
         alias /root/data/fastdfs/storage/data/; 
      }
        location / {
            root   html;
            index  index.html index.htm;
          }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
          }
    }
}
内容结束
2)重启nginx:nginx -s reload 
3)访问文件 (root:192.168.1.104) : 
方式一:http://192.168.1.104:80/group1/M00/00/00/wKgBaFv8ELmACTGXAAIWRj8eKZQ239.jpg
注意这里可能出现问题:Centos7自带的最初版火狐浏览器解析上面地址的时候可能解析为一个目录,即:http://roottracker:8081/group1/M00/00/00/wKgBaFv8ELmACTGXAAIWRj8eKZQ239.jpg/这种形式,导致访问不到文件,问题出在wKhphFrhIVuADqfzAASB-wpUaac425.jpg这个位置,把文件和访问地址的后缀名改为.jpeg就可以访问到,具体原因不太清楚,不过
谷歌浏览器或者更新后的火狐浏览器又不会出现问题,所以本地谷歌浏览器测试
方式二:wget http://192.168.1.104:80/group1/M00/00/00/wKgBaFv8ELmACTGXAAIWRj8eKZQ239.jpg,可以获取到文件则nginx配置成功。

三、FastDFS 配置 Nginx 模块
前言: fastdfs-nginx-module 模块说明
  FastDFS 通过 Tracker 服务器,将文件放在 Storage 服务器存储, 但是同组存储服务器之间需要进行文件复制, 数据同步有延迟的问题。 
  假设 Tracker 服务器将文件上传到了 Stroage1,上传成功后文件 ID已经返回给客户端。此时 FastDFS 存储集群机制会将这个文件同步到同组存储 Stroage2,在文件还没有复制完成的情况下,客户端如果用这个文件 ID 在 Stroage2 上取文件,就会出现文件无法访问的错误。而 fastdfs-nginx-module 可以重定向文件链接到源服务器取文件,避免客户端由于复制延迟导致的文件无法访问错误。

安装配置fastdfs-nginx-module模块
先安装解压zip工具:yum install unzip -y
1) 下载 fastdfs-nginx-module 
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/master.zip 
2) 解压 
unzip master.zip 
3) 停止nginx服务 
nginx -s stop 
4) nginx添加fastdfs-nginx-module模块重新编译安装 
进入nginx解压目录 
cd nginx-1.14.0/ 
nginx配置fastdfs-nginx-module模块 (注意下面在同一个文件夹 /~/downloads 下的)
./configure --with-http_ssl_module --user=root --add-module=../fastdfs-nginx-module-master/src/ 
编译 :make -j 4   (直接编译会报错,需要改配置,大坑)
改配置(在目录nginx-1.14.0/):cd ../fastdfs-nginx-module-master/src/
编辑:vim config ,内容:
修改 ngx_module_incs="/usr/include/fastcommon /usr/include/fastdfs"
修改 CORE_INCS="$CORE_INCS /usr/include/fastcommon /usr/include/fastdfs"
保存,回到目录nginx-1.14.0/:cd ~/downloads/nginx-1.14.0/ ,
重新执行编译:./configure --with-http_ssl_module --user=root --add-module=../fastdfs-nginx-module-master/src/ 
重新编译:make -j 4
安装:make install
5) 启动Nginx:nginx,查看Nginx的模块:nginx -V 
若有下面配置则证明模块添加成功: 
configure arguments: --add-module=../fastdfs-nginx-module-master/src/ 
6) 修改配置文件1 
复制 fastdfs-nginx-module 源码中的配置文件mod_fastdfs.conf,并修改配置 
cp ~/downloads/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/ 
编辑mod_fastdfs.conf文件: 
vim /etc/fdfs/mod_fastdfs.conf 
修改如下配置,其余默认即可:
#连接超时时间(留默认)
connect_timeout=15
# TrackerServer的IP和端口
tracker_server=rootTracker:22122 (192.168.1.104:22122)
# StorageServer端口
storage_server_port=23000  (默认)
# 如果文件ID的uri中包含group分组信息,则要设置为true
url_have_group_name=true  
# Storage配置的store_path0路径,必须和storage.conf中的一致
store_path0=/root/data/fastdfs/storage
7) 修改配置文件2 
复制 FastDFS 源码中的配置文件到/etc/fdfs 目录: 
进入目录:cd ~/downloads/fastdfs-5.11/conf/ 
复制:cp anti-steal.jpg http.conf mime.types /etc/fdfs/ 
8) 修改配置文件3 
修改nginx的配置文件nginx.conf,修改下面配置,其它不变: 
进入:vim /usr/local/nginx/conf/nginx.conf ,内容:
# 注释了下面的
#location /group1/M00/ { 
    #alias /root/data/fastdfs/storage/data/; 
#}
# 添加fastdfs-nginx-module模块
location ~/group([0-9])/M00/ {      
    ngx_fastdfs_module;
}
注意: 
1) nginx.conf 配置中的 listen 80端口值要与/etc/fdfs/storage.conf中的http.server_port=80 (前面配置为80了)端口值相对应;如果改成其它端口,则需要统一,同时在防火墙中打开该端口。 
2) location 的配置,在集群模式中,有多个group,所以这里以正则的方式配置,如果是单一节点可以只配置指定group。 
9) 启动Nginx:nginx
打印类似如下信息,则配置成功: 
ngx_http_fastdfs_set pid=119826 
10) http访问能获取到文件,则nginx配置成功;注意和前面中直接使用nginx路由访问不同的是,这里配置 fastdfs-nginx-module 模块,可以重定向文件链接到源服务器取文件。 root:192.168.1.104
http://192.168.1.104:80/group1/M00/00/00/wKgBaFv8ELmACTGXAAIWRj8eKZQ239.jpg 
wget http://root:80/group1/M00/00/00/wKgBaFv8ELmACTGXAAIWRj8eKZQ239.jpg 

配置更多group(集群):
启动多个tracker和storaget服务器,配置多个server和多个path,
进入:vim /etc/fdfs/storage.conf ,如:
tracker_server=192.168.1.104:22122
tracker_server=192.168.1.105:22122
store_path0=/root/data/fastdfs/storage
store_path1=/root/data/fastdfs/storage2
...

至此FastDns搭建完成

想要安全访问,加一个防盗链,只允许本网站访问和下载

具体做法!


测试:http://192.168.1.104:80/group1/M00/00/00/wKgBaFv8ELmACTGXAAIWRj8eKZQ239.jpg
http://192.168.1.104/group1/M00/00/00/wKgBaFv9AOaAKdyIAAG_cF_tWps097.zip
http://192.168.1.104/group1/M00/00/00/wKgBaFv9Ad-Abep_AAUtbU7xcws013.pdf
http://192.168.1.104/group1/M00/00/00/wKgBaFv9DoaAHaZjAAAtaHzd49450.docx

java操作文件

https://blog.csdn.net/qq_37902949/article/details/85052285

原文地址:https://www.cnblogs.com/qq1995/p/10358977.html