一,下载 fastdfs6.06

1,官方地址

https://github.com/happyfish100

2,说明:当前版本:共3个子模块

fastdfs v6.06
libfastcommon v1.0.43
fastdfs-nginx-module v 1.22

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

对应的源码可以访问这里获取: https://github.com/liuhongdi/

说明:作者:刘宏缔 邮箱: 371125307@qq.com

3,下载

[root@localhost source]# wget https://github.com/happyfish100/fastdfs/archive/V6.06.tar.gz
[root@localhost source]# wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.22.tar.gz
[root@localhost source]# wget https://github.com/happyfish100/libfastcommon/archive/V1.0.43.tar.gz

二,下载nginx

1,官网地址:

http://nginx.org/

2,下载nginx

[root@localhost source]# wget http://nginx.org/download/nginx-1.17.8.tar.gz

三,安装fastdfs所需的程序包

[root@localhost dest]# yum install gcc gcc-c++
[root@localhost dest]# yum install libtool zlib zlib-devel openssl openssl-devel
[root@localhost dest]# yum -y install pcre pcre-devel libevent libevent-devel perl unzip net-tools wget

说明:在fastdfs的编译安装时会用到这些包,避免编译时出现报错

四,libfastcommon的安装

1,解压libfastcommon的压缩包

 [root@localhost source]# tar -zxvf V1.0.43.tar.gz

2, 编译并安装

[root@localhost source]# cd libfastcommon-1.0.43/
[root@localhost libfastcommon-1.0.43]# ./make.sh && ./make.sh install

3,检查执行的结果,看安装是否成功:

[root@localhost libfastcommon-1.0.43]# ls /usr/lib64|grep libfastcommon
libfastcommon.so
[root@localhost libfastcommon-1.0.43]# ls /usr/lib|grep libfastcommon
libfastcommon.so

说明:如果能看到libfastcommon.so,说明安装成功

五,编译安装fastdfs

1,解压fastdfs

[root@localhost source]# tar -zxvf V6.06.tar.gz

2,安装fastdfs

[root@localhost source]# cd fastdfs-6.06/
[root@localhost fastdfs-6.06]# ./make.sh && ./make.sh install

3,检查fastdfs是否安装成功?

[root@localhost fastdfs-6.06]# ls /usr/bin|grep fdfs
fdfs_appender_test
fdfs_appender_test1
fdfs_append_file
fdfs_crc32
fdfs_delete_file
fdfs_download_file
fdfs_file_info
fdfs_monitor
fdfs_regenerate_filename
fdfs_storaged
fdfs_test
fdfs_test1
fdfs_trackerd
fdfs_upload_appender
fdfs_upload_file

说明:能看到fdfs_打头的这些程序,则表示安装成功

六,生成启动fastdfs所需的配置文件

[root@localhost fastdfs-6.06]# cd /etc/fdfs/
[root@localhost fdfs]# cp storage.conf.sample storage.conf
[root@localhost fdfs]# cp client.conf.sample client.conf
[root@localhost fdfs]# cp tracker.conf.sample tracker.conf

七,启动tracker服务

1,创建tracker服务所需的目录

[root@localhost fdfs]# mkdir /data/fastdfs
[root@localhost fdfs]# mkdir /data/fastdfs/tracker
[root@localhost fdfs]# chmod 777 /data/fastdfs/tracker

2,配置tracker服务,

修改 tracker.conf 文件

[root@localhost fdfs]# vi /etc/fdfs/tracker.conf

只修改base_path一项的值为我们在上面所创建的目录即可

  base_path = /data/fastdfs/tracker

3,启动 tracker 服务

[root@localhost fdfs]# /etc/init.d/fdfs_trackerd start

4,检查tracker服务启动是否成功

[root@localhost fdfs]# ps auxfww | grep fdfs
root 15067 0.0 0.0 12320 964 pts/0 S+ 15:14 0:00 | | \_ grep --color=auto fdfs
root 15026 0.0 0.1 90160 5940 ? Sl 15:13 0:00 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf

能看到 fdfs_trackerd,表示tracker服务启动成功

5,检查tracker服务是否已绑定端口 22122?

[root@localhost dest]# netstat -anp | grep 22122
tcp 0 0 0.0.0.0:22122 0.0.0.0:* LISTEN 15026/fdfs_trackerd

说明: 22122端口是在/etc/fdfs/tracker.conf中定义的,

如下:

# the tracker server port
port = 22122

八,启动storage服务

1,创建storage服务所需的目录

[root@localhost fdfs]# mkdir /data/fastdfs/storage
[root@localhost fdfs]# chmod 777 /data/fastdfs/storage/

2,  配置storage服务

编辑storage的配置文件:

[root@localhost fdfs]# vi /etc/fdfs/storage.conf

各配置项包括:

配置base_path为上面所创建的storage目录

base_path = /data/fastdfs/storage
store_path0 = /data/fastdfs/storage

//上面的store_path :存储所在的目录,可以设置多个,注意从0开始

tracker_server = 192.168.3.172:22122 

//上面是tracker_server的ip和端口

http.server_port = 80

//上面是指定http服务的端口

说明:从上面我们可以看到,storage_server在启动时要注册到tracker_server,

从而实现由tracker_server对其进行调度

3,启动storage服务

[root@localhost fdfs]# /etc/init.d/fdfs_storaged start
正在启动 fdfs_storaged (via systemctl): [ 确定 ]

4,检查storage服务启动是否成功?

[root@localhost fdfs]# ps auxfww | grep fdfs
root 15630 0.0 0.0 12320 972 pts/0 S+ 15:46 0:00 | | \_ grep --color=auto fdfs
root 15026 0.0 0.1 155696 6964 ? Sl 15:13 0:00 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
root 15573 2.7 1.7 150736 66292 ? Sl 15:45 0:02 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf

说明:看到fdfs_storaged,表示storage服务启动成功

5,检查storage服务是否已绑定到端口:23000?

[root@localhost fdfs]# netstat -anp | grep 23000
tcp 0 0 0.0.0.0:23000 0.0.0.0:* LISTEN 15573/fdfs_storaged

说明:23000 端口是在配置文件 /etc/fdfs/storage.conf中定义的,如下:

# the storage server port
port = 23000

九,配置fastdfs的客户端使用的配置文件

1,配置客户端要使用的client.conf

[root@localhost fdfs]# vi /etc/fdfs/client.conf

以下两项配置用到的tracker目录和服务器地址端口

base_path = /data/fastdfs/tracker
tracker_server = 192.168.3.172:22122

2,从客户端的配置可以看到:客户端只需要了解tracker_server的信息

Tracker server作用也正是负载均衡和调度

3, Storage server作用是文件存储,客户端上传的文件最终存储在 Storage 服务器上

十,安装nginx及fastdfs-nginx-module

1,解压nginx:

[root@localhost source]# tar -zxvf nginx-1.17.8.tar.gz

2,解压fastdfs-nginx-module

[root@localhost source]# tar -zxvf V1.22.tar.gz

3,修改config文件,把/usr/local 替换成 /usr

[root@localhost source]# cd fastdfs-nginx-module-1.22/
[root@localhost fastdfs-nginx-module-1.22]# cd src
[root@localhost src]# vi config

4,nginx配置,添加fastdfs-nginx-module和http_stub_status_module 模块

[root@localhost fdfs]# cd /usr/local/source/nginx-1.17.8/
[root@localhost nginx-1.17.8]# ./configure --prefix=/usr/local/soft/nginx --with-http_stub_status_module --add-module=/usr/local/source/fastdfs-nginx-module-1.22/src/

5,编译安装nginx

[root@localhost nginx-1.17.8]# make && make install

6,检查安装是否成功?

[root@localhost nginx-1.17.8]# ls /usr/local/soft/ | grep nginx
nginx

7,查看指定的编译参数是否起作用?

[root@localhost fdfs]# /usr/local/soft/nginx/sbin/nginx -V
nginx version: nginx/1.17.8
built by gcc 8.3.1 20190507 (Red Hat 8.3.1-4) (GCC)
configure arguments: --prefix=/usr/local/soft/nginx --with-http_stub_status_module --add-module=/usr/local/source/fastdfs-nginx-module-1.22/src/

十一,配置fastdfs-nginx-module

1,生成配置文件:

[root@localhost nginx-1.17.8]# cp /usr/local/source/fastdfs-nginx-module-1.22/src/mod_fastdfs.conf /etc/fdfs/

2,编辑配置文件:

[root@localhost nginx-1.17.8]# vi /etc/fdfs/mod_fastdfs.conf

配置以下几项

connect_timeout=10
tracker_server=192.168.3.172:22122
url_have_group_name = true
store_path0=/data/fastdfs/storage

3,复制另两个web访问用到配置文件到fdfs配置目录下:

[root@localhost nginx-1.17.8]# cd /usr/local/source/fastdfs-6.06/conf/
[root@localhost conf]# cp http.conf /etc/fdfs/
[root@localhost conf]# cp mime.types /etc/fdfs/

十二,配置nginx

编辑nginx的配置文件:

[root@localhost conf]# vi /usr/local/soft/nginx/conf/nginx.conf

在server listen 80 的这个server配置下面,

增加一个location

       location ~/group([0-9]) {
root /data/fastdfs/storage/data;
ngx_fastdfs_module;
}

十三,启动nginx

1,启动

[root@localhost storage]# /usr/local/soft/nginx/sbin/nginx 

2,检查nginx是否已成功启动

[root@localhost storage]# ps auxfww | grep nginx
root 24590 0.0 0.0 12320 980 pts/0 S+ 16:44 0:00 | | \_ grep --color=auto nginx
root 24568 0.0 0.0 41044 428 ? Ss 16:44 0:00 \_ nginx: master process /usr/local/soft/nginx/sbin/nginx
nobody 24569 0.0 0.1 74516 4940 ? S 16:44 0:00 \_ nginx: worker process

十四,测试上传一张图片

1,准备一张图片,然后上传

[root@localhost storage]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /home/liuhongdi/image/nginx.jpg
group1/M00/00/00/wKgDrF5U32GAZAo1AAAyP-hllUI402.jpg

注意fdfs所返回的地址,我们需要使用这个地址进行访问

2,打开浏览器:访问这个地址:

http://192.168.3.172/group1/M00/00/00/wKgDrF5U32GAZAo1AAAyP-hllUI402.jpg

可以看到图片

3,说明:192.168.3.172是拼接的本地服务器的ip

4,实际的图片位于文件系统中什么位置?

[root@localhost data]# pwd
/data/fastdfs/storage/data

[root@localhost data]# ls 00/00
wKgDrF5U32GAZAo1AAAyP-hllUI402.jpg

可见/group1/M00这两个目录是由fdfs所管理生成的目录:

它们分别代表fdfs生成的组名和磁盘

十五,查看fdfs的版本

[root@localhost data]# fdfs_monitor /etc/fdfs/client.conf | grep version
[2020-02-25 16:58:01] DEBUG - base_path=/data/fastdfs/tracker, connect_timeout=5, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0 version = 6.06

十六,监控fdfs的运行状态

[root@localhost data]# fdfs_monitor /etc/fdfs/client.conf

十七,查看本地centos的版本

[root@localhost lib]# cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)

最新文章

  1. 字符串数组初始化0 与memset 0 效率的分析
  2. JSPatch常见问题解答
  3. Apache Server 添加虚拟主机(Virtual Host )
  4. Android ViewPager使用详解
  5. PHP+redis实现超迷你全文检索
  6. CSS3:不可思议的border属性&Web字体图标Font Awesome
  7. Makefile所有内嵌函数
  8. Android adb shell命令大全
  9. Apache Struts2 s2-020补丁安全绕过漏洞
  10. (转)Qt Model/View 学习笔记 (一)——Qt Model/View模式简介
  11. andorid 平台调用Web Service , 图片传输
  12. zepto源码研究 - deferred.js(jquery-deferred.js)
  13. Elasticsearch安装ik中文分词插件(四)
  14. “找回” Envi 快捷方式
  15. 【Egret】2D 使用中的一些疑难解决技巧!
  16. ASP.NET CORE系列【二】使用Entity Framework Core进行增删改查
  17. RazorPage 小测试,作下记录
  18. drf实现图片验证码功能
  19. GMA Round 1 逃亡
  20. Windows Server 2008 R2微软官方下载

热门文章

  1. oracle之事务和锁
  2. 使用GO实现Paxos分布式一致性协议
  3. 人工智能顶级会议最佳论文里的“DaDianNao”是什么鬼?
  4. Salesforce Javascript(一) Promise 浅谈
  5. 能否使用GHDL+GTKWave代替Quartus ii (续——vhdl_testbench_cli)
  6. 使用IDEA远程调试SpringBoot程序
  7. 手把手教你springboot中导出数据到excel中
  8. 听说这四个概念,很多 Java 老手都说不清
  9. git 一个可以提高开发效率的命令:cherry-pick
  10. Python-进程-进程池-原理