同一个网站,根据客户端用电脑或手机访问不同 出现的会有宽屏或长格式  是用不同的样式表文件决定 但网页文件还是那一个


FASTDFS   主控服务器 (存所有文件目录信息,要找一个文件先找他)----》数据库服务器(存放文件)


分布式文件系统:fastDFS功能:文件存储,文件访问,文件同步(上传下载) 解决大容量存储和负载均衡问题,适合以文件为载体在线服务,如相册网站,视频网站(京东,51cto,赶集,支付宝

FastDFS服务分为跟踪器和存储节点两块,存储节点一个组可以是多个,这样使保存的数据更安全。客户的数据可以上传下载,节点上都能查到,但客户把自己的数据文件删了,节点就不会有。

______________________________________________________________

fdfs_trackerd 22122         fdfs_storaged 23000

—————————————————————————————————————————————


1)vh01

1.先新建两台虚拟机,vh01和vh02

vh01.tedu.cn 192.168.4.1/24 tracker

vh02.tedu.cn 192.168.4.2/24  group1/storage   额外硬盘


2.安装fastDFS trakcer (vh01做跟踪器)

安装依赖包

# ls fdfs_soft/

fastdfs-nginx-module_v1.16.tar.gz

FastDFS_v4.06.tar.gz

libevent-devel-1.4.13-4.el6.x86_64.rpm

libevent-doc-1.4.13-4.el6.noarch.rpm

libevent-headers-1.4.13-4.el6.noarch.rpm

nginx-1.7.10.tar.gz

tedu.jpg

#cd fdfs_soft

# yum -y install gcc libevent make *.rpm (先把依赖包装,因为有些依赖在光盘中没有,先下好放在一起,再装)rpm包也可以用yum装 不需要用rpm -ivh  *.rpm (这样可以解决依赖关系)

# tar -zxvf FastDFS_v4.06.tar.gz

# cd FastDFS

# vim INSTALL (查看安装需要过程和依赖)

# ./make.sh

# ./make install


2.配置tracker (vh01跟踪器)

# cp init.d/fdfs_trackerd  /etc/init.d/    (拷贝fdfs_trackerd 启动脚本到/etc下)

# mkdir -p /data/fastdfs

# vim /etc/fdfs/tracker.conf

 22 base_path=/data/fastdfs

 25 max_connections=4096

 32 # the method of selecting group to upload files

 33 # 0: round robin

 34 # 1: specify group

 35 # 2: load balance, select the max free space group to upload file

 36 store_lookup=2

186 storage_ids_filename = storage_ids.conf

# cp storage_ids.conf /etc/fdfs/

100001     group1   192.168.4.2


3.启动服务器:

# service fdfs_trackerd start; chkconfig fdfs_trackerd on

Starting FastDFS tracker server:

# service fdfs_trackerd status

fdfs_trackerd (pid 3342) 正在运行...

————————————————————————————————————————————

# vim /data/fastdfs/logs/trackerd.log 日志文件存在这(出现什么问题可以查看日志)

————————————————————————————————————————————





2)vh02

1.配置storage(vh02存储节点,属于group1组)

#cd fdfs_soft/

#yum -y install gcc libevent  *.rpm make

#tar -zxf FastDFS_v4.06.tar.gz

#cd FastDFS

#./make.sh

#./make.sh install

#lsblk

#parted /dev/vdb


mktab gpt

mkpart

primary

ext4

1M

-1

quit


#lsblk

#mkfs.ext4 /dev/vdb1

#blkid  /dev/vdb1

#mkdir -p /data/fastdfs

#vim /etc/fstab (永久挂载)

UUID="c8b37f56-7bb5-4c9b-b45b-610a3884f785" /data/fastdfs ext4 defaults  0   0


#mount -a

#cp init.d/fdfs_storaged /etc/init.d/ (拷贝fdfs_storadged启动脚本到etc下)

#vim /etc/fdfs/storage.conf

 7 group_name=group1

 37 base_path=/data/fastdfs

42 max_connections=4096

96 store_path_count=1

100 store_path0=/data/fastdfs

109 tracker_server=192.168.4.1:22122

172 upload_priority=10

起服务并验证:

#service fdfs_storaged start; chkconfig fdfs_storaged on

#service fdfs_storaged status

# ls /data/fastdfs/data/00

#netstat -anptu | grep :23000





3)物理机

配置物理主机为客户端(192.168.4.254)

1、在物理主机上创建工作目录

# mkdir /tmp/fdfs

2、将服务端上/usr/local/bin/下所有的fdfs命令文件拷贝到物理主机

[root@vh02 FastDFS]# scp /usr/local/bin/fdfs_* 192.168.4.254:/tmp/fdfs/

3、将服务端配置文件client.conf拷贝到物理主机

[root@vh02 FastDFS]# scp /etc/fdfs/client.conf 192.168.4.254:/tmp/fdfs/

4、修改配置文件

#cd /tmp/fdfs

#vim client.conf

base_path=/tmp/fdfs

tracker_server=192.168.4.1:22122


物理机:数据上传和下载,删除:

[root@room1pc01 fdfs]# ./fdfs_upload_file client.conf /etc/passwd

group1/M00/00/00/wKgEAljPFZyAXM7xAAALqve6qZ43997550


[root@room1pc01 fdfs]# ./fdfs_download_file client.conf group1/M00/00/00/wKgEAljPFZyAXM7xAAALqve6qZ43997550 /tmp/users


服务器(vh02 storage)查看:

[root@vh02 00]# pwd

/data/fastdfs/data/00/00

[root@vh02 00]# ls    (物理机上传的服务器会有节点存储,文件名就是物理机生成的文件名和路径)

wKgEAljPFZyAXM7xAAALqve6qZ43997550


删除:(物理机把上传的删除后,服务器存储节点就没有了)

[root@room1pc01 fdfs]# ./fdfs_delete_file client.conf group1/M00/00/00/wKgEAljPFZyAXM7xAAALqve6qZ43997550




4)vh02:

1.在storage上配置web访问(vh02加网站模块,上传图片文件)

#yum -y install -y pcre pcre-devel zlib-devel

#useradd -s /sbin/nologin nginx

#cd fdfs_soft/

#tar -zxvf fastdfs-nginx-module_v1.16.tar.gz

#tar -zxvf  nginx-1.7.10.tar.gz

#cd nginx-1.7.10

#./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --add-module=../fastdfs-nginx-module/src/

#make && make install


#cp fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

#vim /etc/fdfs/mod_fastdfs.conf

base_path=/data/fastdfs

tracker_server=192.168.4.1:22122

group_name=group1

store_path_count=1

store_path0=/data/fastdfs

#vim /usr/local/nginx/conf/nginx.conf

    location / {

            # root   html;

            # index  index.html index.htm;

            ngx_fastdfs_module;

        }


#/usr/local/nginx/sbin/nginx


2.测试,物理机上传图片:

[root@room1pc01 fdfs]# ./fdfs_upload_file client.conf /root/桌面/2138294562.jpg

group1/M00/00/00/wKgEAljPHCKAdT4XAADb1hKlWxM275.jpg


[root@room1pc01 fdfs]# firefox http://192.168.4.2/group1/M00/00/00/wKgEAljPHCKAdT4XAADb1hKlWxM275.jpg


服务器(vh02 storage)查看(也会有文件图片保存):

[root@vh02 00]# pwd

/data/fastdfs/data/00/00

[root@vh02 00]# ls

wKgEAljPHCKAdT4XAADb1hKlWxM275.jpg



————


上面是vh01做fastDFS trakcer跟踪器 且只设一个group1组,组内只有一个备份存储节点vh02,现在在group1组加一个节点vh03(192.168.4.3),再加一个group2组,存储节点vh04(192.168.4.4),vh01 trakcer采取的存储数据的方式是轮循。一个组保存一次,当group1组保数据时,vh02和vh03这两个节点都会有备份。(这两个节点最大存储的空间以小的为准)。



1)vh01

[root@vh01 fdfs_soft]# vim /etc/fdfs/storage_ids.conf

# <id>  <group_name>  <ip_or_hostname>

# 100001   group1  192.168.0.196

# 100002   group1  192.168.0.116

100001     group1   192.168.4.2

100002     group1    192.168.4.3

100003     group2    192.168.4.4

[root@vh01 fdfs_soft]# vim /etc/fdfs/tracker.conf    (设置轮循存储)

 32 # the method of selecting group to upload files

 33 # 0: round robin

 34 # 1: specify group

 35 # 2: load balance, select the max free space group to upload file

 36 store_lookup=0


[root@vh01 fdfs_soft]# service fdfs_trackerd restart;chkconfig fdfs_trackerd on





2)vh03:

192.168.4.3 加一块硬盘:

1.配置storage(vh03存储节点,属于group1组与vh02一样)

#cd fdfs_soft/

#yum -y install gcc libevent  *.rpm make

#tar -zxf FastDFS_v4.06.tar.gz

#cd FastDFS

#./make.sh

#./make.sh install

#lsblk

#parted /dev/vdb

mktab gpt

mkpart

primary

ext4

1M

-1

quit


#lsblk

#mkfs.ext4 /dev/vdb1

#blkid  /dev/vdb1

#mkdir -p /data/fastdfs

#vim /etc/fstab (永久挂载)

UUID="c8b37f56-7bb5-4c9b-b45b-610a3884f785" /data/fastdfs ext4 defaults  0   0


#mount -a

#cp init.d/fdfs_storaged /etc/init.d/ (拷贝fdfs_storadged启动脚本到etc下)

#vim /etc/fdfs/storage.conf

 7 group_name=group1

 37 base_path=/data/fastdfs

42 max_connections=4096

96 store_path_count=1

100 store_path0=/data/fastdfs

109 tracker_server=192.168.4.1:22122

172 upload_priority=10

起服务并验证:

#service fdfs_storaged start; chkconfig fdfs_storaged on

#service fdfs_storaged status

# ls /data/fastdfs/data/00

#netstat -anptu | grep :23000



3)vh03:

1.在storage上配置web访问(vh03加网站模块,上传图片文件)

#yum -y install -y pcre pcre-devel zlib-devel

#useradd -s /sbin/nologin nginx

#cd fdfs_soft/

#tar -zxvf fastdfs-nginx-module_v1.16.tar.gz

#tar -zxvf  nginx-1.7.10.tar.gz

#cd nginx-1.7.10

#./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --add-module=../fastdfs-nginx-module/src/

#make && make install


#cp fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

#vim /etc/fdfs/mod_fastdfs.conf

base_path=/data/fastdfs

tracker_server=192.168.4.1:22122

group_name=group1

store_path_count=1

store_path0=/data/fastdfs

#vim /usr/local/nginx/conf/nginx.conf

    location / {

            # root   html;

            # index  index.html index.htm;

            ngx_fastdfs_module;

        }


#/usr/local/nginx/sbin/nginx (也可做个链接 #ln -s /usr/lcoal/nginx/sbin/nginx /bin    #nginx)

#service fdfs_storaged start;chkconfig fdfs_storaged on





4)vh04:

1.配置storage(vh04存储节点,属于group2组)

#cd fdfs_soft/

#yum -y install gcc libevent  *.rpm make

#tar -zxf FastDFS_v4.06.tar.gz

#cd FastDFS

#./make.sh

#./make.sh install

#lsblk

#parted /dev/vdb


mktab gpt

mkpart

primary

ext4

1M

-1

quit


#lsblk

#mkfs.ext4 /dev/vdb1

#blkid  /dev/vdb1

#mkdir -p /data/fastdfs

#vim /etc/fstab (永久挂载)

UUID="c8b37f56-7bb5-4c9b-b45b-610a3884f541" /data/fastdfs ext4 defaults  0   0


#mount -a

#cp init.d/fdfs_storaged /etc/init.d/ (拷贝fdfs_storadged启动脚本到etc下)

#vim /etc/fdfs/storage.conf

 7 group_name=group2

 37 base_path=/data/fastdfs

42 max_connections=4096

96 store_path_count=1

100 store_path0=/data/fastdfs

109 tracker_server=192.168.4.1:22122

172 upload_priority=10

起服务并验证:

#service fdfs_storaged start; chkconfig fdfs_storaged on

#service fdfs_storaged status

# ls /data/fastdfs/data/00

#netstat -anptu | grep :23000


5)vh04:

1.在storage上配置web访问(vh04加网站模块,上传图片文件)

#yum -y install -y pcre pcre-devel zlib-devel

#useradd -s /sbin/nologin nginx

#cd fdfs_soft/

#tar -zxvf fastdfs-nginx-module_v1.16.tar.gz

#tar -zxvf  nginx-1.7.10.tar.gz

#cd nginx-1.7.10

#./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --add-module=../fastdfs-nginx-module/src/

#make && make install


#cp fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

#vim /etc/fdfs/mod_fastdfs.conf

base_path=/data/fastdfs

tracker_server=192.168.4.1:22122

group_name=group1

store_path_count=1

store_path0=/data/fastdfs

#vim /usr/local/nginx/conf/nginx.conf

    location / {

            # root   html;

            # index  index.html index.htm;

            ngx_fastdfs_module;

        }


 #ln -s /usr/lcoal/nginx/sbin/nginx /bin  

 #nginx


#service fdfs_storaged start;chkconfig fdfs_storaged on





6)测试::

在物理机测试(结果保存第一张图片文件,存储在group1的两个节点,第二在group2节点)

[root@room1pc01 fdfs]# ./fdfs_upload_file client.conf  /root/桌面/121.jpg

group1/M00/00/00/wKgEAljPTJuAa39OAACwEV-ILDc227.jpg


[root@vh02 00]# pwd

/data/fastdfs/data/00/00

[root@vh02 00]# ls

wKgEAljPEPGABqmoAAABqYAP-0I1945621_big    wKgEAljPHCKAdT4XAADb1hKlWxM275.jpg

wKgEAljPEPGABqmoAAABqYAP-0I1945621_big-m  wKgEAljPL1SAJ-PhAAALqve6qZ40251435

wKgEAljPG46AAfv-AACwEV-ILDc994.jpg        wKgEAljPTJuAa39OAACwEV-ILDc227.jpg


[root@vh03 00]# pwd

/data/fastdfs/data/00/00

[root@vh03 00]# ls

wKgEAljPEPGABqmoAAABqYAP-0I1945621_big    wKgEAljPHCKAdT4XAADb1hKlWxM275.jpg

wKgEAljPEPGABqmoAAABqYAP-0I1945621_big-m  wKgEAljPL1SAJ-PhAAALqve6qZ40251435

wKgEAljPG46AAfv-AACwEV-ILDc994.jpg        wKgEAljPTJuAa39OAACwEV-ILDc227.jpg



[root@room1pc01 fdfs]# ./fdfs_upload_file client.conf  /root/桌面/121.jpg

group2/M00/00/00/wKgEBFjPTxuAGZo4AACwEV-ILDc534.jpg


[root@vh04 00]# pwd

/data/fastdfs/data/00/00

[root@vh04 00]# ls

wKgEBFjPTxuAGZo4AACwEV-ILDc534.jpg

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

转载于:https://blog.51cto.com/12346621/1908554