FastDFS图片服务器搭建-支持分布式

淩亂°似流年 2022-06-16 10:12 308阅读 0赞

如果不知道FastDFS是什么鬼的话,先去了解过了,在回来看这篇文章,本文已环境搭建为目的,勿喷!!

安装环境CentOS

用到的文件

FastDFS_v5.08.tar.gz

nginx-1.8.1.tar.gz

fastdfs-nginx-module_v1.16.tar.gz

libfastcommon

服务名称介绍:

fastdfs-tracker—-跟踪服务器/调度服务器

fastdfs-storage—-存储服务器










[root@fastdfs-storage ~]
# mkdir -p /home/oldcat/tools


[root@fastdfs-storage ~]
# cd /home/oldcat/tools/


以上目录可自选

  1. 2 下载并安装FastDFS依赖包libfastcommon









1


2


3


4


5


6


7



[root@fastdfs-storage tools]
# wget https://codeload.github.com/happyfish100/libfastcommon/zip/master


[root@fastdfs-storage tools]
# unzip master


[root@fastdfs-storage tools]
# cd libfastcommon-master/


[root@fastdfs-storage libfastcommon-master]
# ls


HISTORY  INSTALL  libfastcommon.spec  
make
.sh  php-fastcommon  README  src


[root@fastdfs-storage libfastcommon-master]
# ./make.sh


[root@fastdfs-storage libfastcommon-master]
# ./make.sh install

  1. 3)下载并安装FastDFS









1


2


3


4



[root@fastdfs-tracker tools]
# wget http://jaist.dl.sourceforge.net/project/fastdfs/FastDFS%20Server%20Source%20Code/FastDFS%20Server%20with%20PHP%20Extension%20Source%20Code%20V5.08/FastDFS_v5.08.tar.gz


[root@fastdfs-tracker tools]
# tar xf FastDFS_v5.08.tar.gz


[root@fastdfs-tracker tools]
# cd FastDFS


[root@fastdfs-tracker FastDFS]
# ./make.sh && ./make.sh install















 1)服务脚本:













1


2


3



[root@fastdfs-tracker ~]
# ll /etc/init.d/ |grep fdfs


-rwxr-xr-x. 1 root root   918 4月  22 22:08 fdfs_storaged


-rwxr-xr-x. 1 root root   920 4月  22 22:08 fdfs_trackerd




    2)样例配置文件













1


2


3


4


5



[root@fastdfs-tracker ~]
# ll /etc/fdfs/


总用量 20


-rw-r—r—. 1 root root 1461 4月  22 22:08 client.conf.sample


-rw-r—r—. 1 root root 7927 4月  22 22:08 storage.conf.sample


-rw-r—r—. 1 root root 7200 4月  22 22:08 tracker.conf.sample




    3)命令行工具













1


2


3


4


5


6


7


8


9


10


11


12


13


14


15



[root@fastdfs-tracker ~]
# ll /usr/bin|grep fdfs


-rwxr-xr-x.   1 root root     252272 4月  22 22:08 fdfs_appender_test


-rwxr-xr-x.   1 root root     252225 4月  22 22:08 fdfs_appender_test1


-rwxr-xr-x.   1 root root     242449 4月  22 22:08 fdfs_append_file


-rwxr-xr-x.   1 root root     242013 4月  22 22:08 fdfs_crc32


-rwxr-xr-x.   1 root root     242508 4月  22 22:08 fdfs_delete_file


-rwxr-xr-x.   1 root root     243627 4月  22 22:08 fdfs_download_file


-rwxr-xr-x.   1 root root     243369 4月  22 22:08 fdfs_file_info


-rwxr-xr-x.   1 root root     255657 4月  22 22:08 fdfs_monitor


-rwxr-xr-x.   1 root root     863913 4月  22 22:08 fdfs_storaged


-rwxr-xr-x.   1 root root     258712 4月  22 22:08 fdfs_test


-rwxr-xr-x.   1 root root     257881 4月  22 22:08 fdfs_test1


-rwxr-xr-x.   1 root root     365232 4月  22 22:08 fdfs_trackerd


-rwxr-xr-x.   1 root root     243547 4月  22 22:08 fdfs_upload_appender


-rwxr-xr-x.   1 root root     244453 4月  22 22:08 fdfs_upload_file




    注意:虽然FastDFS区分tracker和storage服务器,但是安装的软件及步骤均相同,只是不同的配置文件而已,因此以上安装适用tracker server和storage server




    4、配置跟踪服务器(tracker server)


    1)拷贝tracker server和client端样例配置文件并重命名













1


2



[root@fastdfs-tracker ~]
# cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf


[root@fastdfs-storage ~]
# cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf




    2)编辑tracker server配置文件tracker.conf,需要修改内容如下:













1


2


3



    
disabled=
false
(默认为
false
,表示是否无效)


    
port=22122(默认为22122)


    
base_path=
/data/fastdfs/tracker




    3)编辑client端的配置文件client.conf,需要修改内容如下













1


2



    
base_path=
/data/fastdfs/tracker


    
tracker_server=39.108.5.86:22122




    4)创建tracker server数据目录













1



[root@fastdfs-tracker ~]
# mkdir -p /data/fastdfs/tracker




    5)测试启动tracker server,启动成功会自动在/data/fastdfs/tracker目录新建data和logs目录













1


2


3


4


5


6


7


8



[root@fastdfs-tracker ~]
# cd /data/fastdfs/tracker/


[root@fastdfs-tracker tracker]
# ls


[root@fastdfs-tracker tracker]
# /etc/init.d/fdfs_trackerd start


Starting FastDFS tracker server:


[root@fastdfs-tracker tracker]
# ss -lntup|grep 22122


tcp    LISTEN     0      128                    :22122                 :      
users
:((
“fdfs_trackerd”
,3785,5)) 


[root@fastdfs-tracker tracker]
# ls


data  logs



















 6)关闭tracker server













1


2


3



[root@fastdfs-tracker tracker]
# /etc/init.d/fdfs_trackerd stop


waiting 
for 
pid [3785] 
exit 



pid [3785] 
exit
.




    5、配置存储服务器(storage server)


    1)拷贝storage server样例配置文件并重命名













1



[root@fastdfs-storage ~]
# cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf




    2)编辑storage server配置文件storage.conf,需要修改内容如下:













1


2


3


4


5


6



    
disabled=
false
(默认为
false
,表示是否无效)


    
port=23000(默认为23000)


    
base_path=
/data/fastdfs/storage


    
tracker_server=39.108.5.86:22122


    
store_path0=
/data/fastdfs/storage


    
http.server_port=8888(默认为8888,nginx中配置的监听端口那之一致)




    3)创建storage server数据目录













1



[root@fastdfs-storage ~]
# mkdir -p /data/fastdfs/storage




    4)测试启动storage server,启动成功会自动在/data/fastdfs/tracker目录新建data和logs目录(启动storage server的前提是tracker server必须事先已启动)













1


2


3


4


5


6


7


8



[root@fastdfs-storage ~]
# cd /data/fastdfs/storage/


[root@fastdfs-storage storage]
# ls


[root@fastdfs-storage storage]
# /etc/init.d/fdfs_storaged start


Starting FastDFS storage server:


[root@fastdfs-storage storage]
# ss -lntup|grep 23000


tcp    LISTEN     0      128                    :23000                 :      
users
:((
“fdfs_storaged”
,3786,5))


[root@fastdfs-storage storage]
# ls


data  logs









 6、文件上传测试


    执行如下上传命令:













1


2


3



[root@fastdfs-tracker ~]
# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /home/oldcat/imgs/test.jpg


group1
/M00/00/00/rBIK6VcaP0aARXXvAAHrUgHEviQ394
.jpg


返回文件ID即说明文件已经上传成功













四、存储服务器(storage server)安装并配置nginx


    1)下载并安装fastdfs-nginx-module模块


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













1


2


3


4


5


6



[root@fastdfs-storage  tools]
# wget http://nchc.dl.sourceforge.net/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz


[root@fastdfs-storage tools]
# tar xf fastdfs-nginx-module_v1.16.tar.gz 


[root@fastdfs-storage tools]
# cd fastdfs-nginx-module/src/


[root@fastdfs-storage src]
# vim config


编辑config文件,执行如下命令进行批量替换并保存退出


:%s+
/usr/local/
+
/usr/
+g




    2)拷贝fastdfs-nginx-module模块中配置文件到/etc/fdfs目录中并编辑













1


2


3


4


5


6


7


8


9


10



[root@fastdfs-storage ~]
# cp /home/oldcat/tools/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/


[root@fastdfs-storage ~]
# vim /etc/fdfs/mod_fastdfs.conf


修改内容如下:


connect_timeout=10


base_path=
/tmp
(默认为
/tmp



tracker_server=39.108.5.86:22122


storage_server_port=23000(默认配置为23000)


url_have_group_name = 
true


store_path0=
/data/fastdfs/storage


group_name=group1(默认配置为group1)




    3)安装nginx依赖库













1



[root@fastdfs-storage nginx-1.8.1]
# yum install -y pcre-devel zlib-devel




    4)下载并安装nginx













1


2


3


4


5



[root@fastdfs-storage  tools]
# wget http://nginx.org/download/nginx-1.8.1.tar.gz


[root@fastdfs-storage tools]
# tar xf nginx-1.8.1.tar.gz 


[root@fastdfs-storage tools]
# cd nginx-1.8.1


[root@fastdfs-storage nginx-1.8.1]
# ./configure —prefix=/application/nginx/ —add-module=../fastdfs-nginx-module/src/


[root@fastdfs-storage nginx-1.8.1]# make && make install








如果需要https支持

先安装ssl


yum -y install openssl openssl-devel


然后执行


加上 ./configure —with-http_ssl_module


在执行make









    5)拷贝FastDFS中的部分配置文件到/etc/fdfs目录中













1


2



[root@fastdfs-storage ~]
# cp /home/oldcat/tools/FastDFS/conf/http.conf /etc/fdfs/


[root@fastdfs-storage ~]
# cp /home/oldcat/tools/FastDFS/conf/mime.types /etc/fdfs/




    6)配置nginx,如下所示:













1


2


3


4


5


6


7


8


9


10


11


12


13


14


15


16


17


18


19


20


21


22


23



[root@fastdfs-storage ~]
# vim /application/nginx/conf/nginx.conf


    
user  root;    


    
worker_processes  1;


    
events {


       
worker_connections  1024;


    
}


    
http {


        
include       mime.types;


        
default_type  application
/octet-stream
;


        
sendfile        on;


        
keepalive_timeout  65;


        
server {


            
listen       8888;


            
server_name  localhost;


            
location ~
/group
[0-9]/ {


                
ngx_fastdfs_module;


            
}


            
error_page   500 502 503 504  
/50x
.html;


            
location = 
/50x
.html {


            
root   html;


            
}


        
}


    
}




说明: 


a、”user root”是解决下载操作时报404的问题


b、8888端口号与/etc/fdfs/storage.conf中的http.server_port=8888相对应


c、storage对应有多个group的情况下,访问路径带group名称,例如:/group1/M00/00/00/*,对应nginx配置:


    location ~/group[0-9]/ {
           ngx_fastdfs_module;
     }


    7)拷贝nginx服务到/etc/init.d/目录下并启动













1


2


3


4



[root@fastdfs-storage ~]
# cp /application/nginx/sbin/nginx /etc/init.d/


[root@fastdfs-storage ~]
# /etc/init.d/nginx


[root@fastdfs-storage ~]
# ss -lntup|grep 8888


tcp    LISTEN     0      128                    :8888                  :      
users
:((
“nginx”
,7308,6),(
“nginx”
,7309,6))




    8)通过浏览器访问之前已经上传的文件













39.108.5.86:8888/group1/M00/00/00/rBIK6VcaP0aARXXvAAHrUgHEviQ394.jpg






配置完成以后就可以在我们的项目里面上传图片到图片服务器了

发表评论

表情:
评论列表 (有 0 条评论,308人围观)

还没有评论,来说两句吧...

相关阅读