如果不知道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 ~]
[root@fastdfs-storage ~]
|
2) 下载并安装FastDFS依赖包libfastcommon
1 2 3 4 5 6 7 | [root@fastdfs-storage tools]
[root@fastdfs-storage tools]
[root@fastdfs-storage tools]
[root@fastdfs-storage libfastcommon-master]
HISTORY INSTALL libfastcommon.spec make .sh php-fastcommon README src
[root@fastdfs-storage libfastcommon-master]
[root@fastdfs-storage libfastcommon-master]
|
3)下载并安装FastDFS
1 2 3 4 | [root@fastdfs-tracker tools]
[root@fastdfs-tracker tools]
[root@fastdfs-tracker tools]
[root@fastdfs-tracker FastDFS]
1)服务脚本: 1 2 3 | [root@fastdfs-tracker ~]
-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 ~]
总用量 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 ~]
-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 ~]
[root@fastdfs-storage ~]
|
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数据目录 5)测试启动tracker server,启动成功会自动在/data/fastdfs/tracker目录新建data和logs目录 1 2 3 4 5 6 7 8 | [root@fastdfs-tracker ~]
[root@fastdfs-tracker tracker]
[root@fastdfs-tracker tracker]
Starting FastDFS tracker server:
[root@fastdfs-tracker tracker]
tcp LISTEN 0 128 *:22122 *:* users :(( "fdfs_trackerd" ,3785,5))
[root@fastdfs-tracker tracker]
data logs
|
6)关闭tracker server 1 2 3 | [root@fastdfs-tracker tracker]
waiting for pid [3785] exit ...
pid [3785] exit .
|
5、配置存储服务器(storage server) 1)拷贝storage server样例配置文件并重命名 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数据目录 4)测试启动storage server,启动成功会自动在/data/fastdfs/tracker目录新建data和logs目录(启动storage server的前提是tracker server必须事先已启动) 1 2 3 4 5 6 7 8 | [root@fastdfs-storage ~]
[root@fastdfs-storage storage]
[root@fastdfs-storage storage]
Starting FastDFS storage server:
[root@fastdfs-storage storage]
tcp LISTEN 0 128 *:23000 *:* users :(( "fdfs_storaged" ,3786,5))
[root@fastdfs-storage storage]
data logs
|
6、文件上传测试 执行如下上传命令: 1 2 3 | [root@fastdfs-tracker ~]
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]
[root@fastdfs-storage tools]
[root@fastdfs-storage tools]
[root@fastdfs-storage src]
编辑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 ~]
[root@fastdfs-storage ~]
修改内容如下:
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]
|
4)下载并安装nginx 1 2 3 4 5 | [root@fastdfs-storage tools]
[root@fastdfs-storage tools]
[root@fastdfs-storage tools]
[root@fastdfs-storage nginx-1.8.1]
先安装ssl yum -y install openssl openssl-devel
然后执行 加上 ./configure --with-http_ssl_module 在执行make
|
5)拷贝FastDFS中的部分配置文件到/etc/fdfs目录中 1 2 | [root@fastdfs-storage ~]
[root@fastdfs-storage ~]
|
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 ~]
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 ~]
[root@fastdfs-storage ~]
[root@fastdfs-storage ~]
tcp LISTEN 0 128 *:8888 *:* users :(( "nginx" ,7308,6),( "nginx" ,7309,6))
|
8)通过浏览器访问之前已经上传的文件 配置完成以后就可以在我们的项目里面上传图片到图片服务器了 |