首先介绍一下这个fastDFS,各位牛牛可以百度一下,我简单查了一下,图片管理为什么使用FastDFS,在伊成的建议下我开始了对这个东西的摸索。
此博客为伊成忘记了最代码的密码,此博客属于伊成原创,我替他分享给大家,大家也可拜访他搭建的博客。
这里声明一下,改天我会再写一篇docker上安装fastDFS,这就是我的原创了。
那么接下来进入主题。
1.下载fastDFS
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz
wget http://jaist.dl.sourceforge.net/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz
wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz
下载完成之后修改tar包名称,更改完成如下图
2.下载nginx
wget http://nginx.org/en/download.html
3.安装libevent
yum -y install libeven
找到 fastDFS 目录下的 libfastcomm-1.0.7.tar.gz 对其解压
tar -zxvf libfastcommon-1.0.7.tar.gz
cd libfastcommon-1.0.7/ //进入文件
./make.sh install //编译并且安装
安装完成后切换到usr/lib64下
cd /usr/lib64/
ll libfast*
把libfastcommon.so文件复制到usr/lib
cp libfastcommon.so /usr/lib/
安装 tracker
tar -zxvf fastdfs-5.05.tar.gz //解压
./make.sh //编译
./make.sh install //安装
安装完成之后,有一部分的配置文件会在 /usr/bin/ 目录下,接着切换到 /usr/bin/ 目录进行查看
接着切换到 fastdfs-5.05/conf/ 目录
cd /home/tar/fastDFS/fastdfs-5.05/conf/ |
需要把里面的配置文件复制到/etc/fdfs/ 目录
切换到 /etc/fdfs/ 进行查看
修改配置文件 tracker.conf
|
vim tracker.conf |
修改了 base_path,然后退出保存。
退出之后,在根目录下创建刚刚修改的base_path 里面定义的目录,命令如下
|
mkdir /fastdfs/tracker -p |
查看是否创建成功
在 fastdfs 下继续创建两个文件夹,后续会使用到的
|
mkdir storage mkdir client |
在这里找到fdfs_trackerd文件,而这个文件就是用来启动tracker的文件。
执行启动命令
1 |
fdfs_trackerd /etc/fdfs/tracker.conf |
假如你的tracker.conf 配置文件发生了变化,那么至需要在这个命令后面加一个restart 即可
|
fdfs_trackerd /etc/fdfs/tracker.conf restart |
到此为止,fastDFS中的 tracker服务 已经OK了。
安装storage
切换目录到 /etc/fdfs/ 上面我们已经修改了tracker.conf,接着找到storage.conf文件
|
group_name=group1 // 组织名,改成你想要的即可 store_path0=/home/yuqing/fastdfs//图片存储路径 tracker_server=192.168.209.121:22122//IP配置为你当前的服务器ip,端口是默认的可不做修改 base_path=/fastdfs/storage // 这个目录路径在前面已经创建过的,在这里就直接写这个即可 |
这个文件就需要该这几个配置项,改为就直接保存退出。
切换到 /usr/bin/目录可以用来启动 storage 服务
找到 fdfs_storaged
执行命令
|
fdfs_storaged /etc/fdfs/storage.conf |
如果storage.conf 有改动,可以重启storage服务就直接在上面的命令后面加一个 restart
|
fdfs_storaged /etc/fdfs/storage.conf restart |
启动完成之后可以查看一下
|
ps aux | grep storage |
到此为止,fastDFS中的 storage服务也已经OK了。
以上 storage服务和tracker服务都启动了,接着做个小测试。
在做这测之前,还需要几件事
配置client
修改 client.conf 配置文件
|
base_path=/fastdfs/client //这个目录也是之前已经创建好了的 tracker_server=192.168.1.10:22122 // IP修改为你的服务器IP 端口默认的可不做修改 |
修改完成之后,退出保存
测试
下面就可以做测试了。
首先还是要切换目录到 /usr/bin/
找到 fdfs_test 这个服务就可以做相应的测试,记得事先准备一张测试图片。
我这里事先准备了一张图片在根目录下
切换到 home 目录查看
执行命令
|
/usr/bin/fdfs_test /etc/fdfs/client.conf upload zhu.png |
说明:
上图可以看见我们曾配置的 组织名 group_name
还有文件名,以及访问图片的URL。
到这一步虽然有了这个图片的url 但是我们还是访问不到这个图片的,因为我们并没有配置对应的web服务器,接下来会配置nginx 。
思考一个问题,由上面的图片已经上传成功了,那这图片到底存储在哪里了呢?
这个取决于你的配置文件里面的配置,我这里是在这个路径下
|
/fastdfs/storage/data/00/00 |
异常情况
如果上传失败一般都是你的配置文件修改的有误,这里附上一个常见的错误场景
解决方法,参考这个链接
https://blog.csdn.net/egbertasd/article/details/90762478
修改完配置文件,记得重启对应的服务!
配置nginx
切换到目录 /home/tar/fastDFS/
找到对应的 fastdfs-nginx-module_v1.16.tar.gz
对其解压
|
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz |
解压完成之后 进入到 fastdfs-nginx-module
在进入到 里面的 src
修改 config 文件
删掉标红的三个 local ,因为和我们配置的路径不一致。
修改完成之后,保存退出。
操作完以上步骤之后,切换目录到 nginx 的tar包下
在安装nginx 之前要先安装必要的一些库
|
1. yum install gcc-c++ 2. yum install pcre prce-devel 3. yum install zlib zili-devel 4. yum install openssl openssl-devel |
接着解压 nginx
|
tar -zxvf nginx-1.12.2.tar.gz |
接下来需要运行一段配置文件
|
./configure \ --prefix=/usr/local/nginx \ --pid-path=/var/run/nginx/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --with-http_gzip_static_module \ --http-client-body-temp-path=/var/temp/nginx/client \ --http-proxy-temp-path=/var/temp/nginx/proxy \ --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \ --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \ --http-scgi-temp-path=/var/temp/nginx/scgi \ --add-module=(这里填写你的fastdfs-ngix-module的路径) |
接着make 编译一下
|
make |
编译完成之后,执行安装命令
|
make install |
安装完成之后,在 /usr/local/ 目录下就会存在一个nginx文件夹
做到这一步,还需要一个fast和nginx的 “桥梁配置文件” 切换目录到
|
cd /home/tar/fastDFS/fastdfs-nginx-module/src |
找到 mod_fastdfs.conf 文件
把它复制到 /etc/fdfs/
|
cp mod_fastdfs.conf /etc/fdfs/ |
进入 /etc/fdfs/ 目录进行查看并且使用 vim 修改这个文件
1 2 |
# the base path to store log files base_path=/fastdfs/tmp |
修改完成保存,然后在 fastdfs 下面创建 tmp 文件夹
在此 进入到 /etc/fdfs/ 目录
继续修改 mod_fastdfs.conf 文件
|
tracker_server=192.168.1.10:22122 //配置你的服务器ip group_name=yicheng // 和之前配置的组织名要一致 url_have_group_name = true // 默认为关闭的 这里修改为true |
修改完成之后保存退出。
接着到 /usr/local/nginx/conf 目录
修改nginx.conf文件
添加以下内容在 nginx.conf 文件
|
server{ listen 88; server_name 192.168.1.10; location /yicheng/M00 { ngx_fastdfs_module; } } |
接着可以进入sbin目录进行nginx的启动了
执行命令先检查一下
|
./nginx -t |
在这里提示 /var/temp/nginx/ 目录不存在
执行以下命令
|
mkdir /var/temp/nginx -p |
发现没问题了,就可以直接启动nginx 了,执行命令
1 |
./nginx |
打开浏览器输入IP访问试试
说明 nginx 已经成功启动了!!!
接着找一下开始上传成功的那个图片路径,复制到浏览器中访问一下。
突然发现还是访问不了这张图片,因为现在我们使用的是nginx 的服务器,上文中有一个fastDFS和nginx 的桥梁配置文件,里面没有配置存放路径。
进入 /etc/fdfs/ 目录,找到 mod_fastdfs.conf 文件,修改它
|
store_path0=/fastdfs/storage |
保存退出。
接着重启 tracker , storage
重启 nginx
到此,全文结束!