fastdfs中浏览器访问获取不到文件_实战!编译安装 FastdFS

904551df2d937280a849a3e6ce649aea.png

1. 安装环境及版本说明

  • 操作系统:CentOS Linux release 7.6.1810
  • fastdfs-6.06.tar.gz
  • libfastcommon-1.0.43.tar.gz
  • fastdfs-nginx-module-1.22.tar.gz
  • nginx-1.18.0.tar.gz

除了 Nginx 的安装包,其它所有安装包都可以在 FastdFS 的 GitHub 项目地址中下载:https://github.com/happyfish100

2. 安装前准备

yum -y install gcc gcc-c++ pcre pcre-devel openssl openssl-devel libevent

# 关闭 SELINUX 和防火墙

3.  编译安装 libfastcommon

[root@public-server src]# tar xf libfastcommon-1.0.43.tar.gz
[root@public-server src]# cd libfastcommon-1.0.43
[root@public-server libfastcommon-1.0.43]# ./make.sh && ./make.sh install

安装后检查

ls /usr/lib64|grep libfastcommon
ls /usr/lib|grep libfastcommon

出现libfastcommon.so即成功

4. 编译安装 Fastdfs

4.1 编译安装

[root@public-server src]# tar xf fastdfs-6.06.tar.gz
[root@public-server src]# cd fastdfs-6.06
[root@public-server fastdfs-6.06]# ./make.sh && ./make.sh install
# 检查是否安装成功
[root@public-server 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

4.2 准备配置文件

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

4.3 启动 fdfs_tracker 服务

  • 修改 tracker.conf
[root@public-server fdfs]# vim tracker.conf
base_path = /data/tracker # 定义存储数据和日志文件的基本路径,子目录会自动创建
store_group = group1 # 指定上传文件到哪个组里面,这里配置的组名要与 storage.conf 中的保持一致
[root@public-server fdfs]# mkdir -pv /data/tracker
  • 启动 tracker 服务
[root@public-server fdfs]# /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
# 检查服务
[root@public-server fdfs]# ps aux|grep fdfs
root     22721  0.0  0.0  89720  4860 ?        Sl   22:50   0:00 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
root     22735  0.0  0.0 112824   980 pts/0    S+   22:50   0:00 grep --color=auto fdfs
[root@public-server fdfs]# ss -tnlp|grep 22122
LISTEN     0      1024         *:22122                    *:*                   users:(("fdfs_trackerd",pid=22721,fd=5))

4.4 启动 storage 服务

  • 修改 storage.conf
[root@public-server fdfs]# vim storage.conf
group_name = group1 # 这里要与 tracker 保持一致
base_path = /data/storage # 定义存储数据和日志文件的基本路径,子目录会自动创建
store_path0 = /data/storage # 与 base_path 保持一致
tracker_server = 10.10.11.166:22122 # 指定 tracker 服务的 IP 和端口,如果是集群可以写多行,每行一个
http.server_port = 8888 # 指定一个端口,默认 8888 可以不修改

[root@public-server fdfs]# mkdir -pv /data/storage # 创建数据目录
  • 启动storage 服务
[root@public-server fdfs]# /usr/bin/fdfs_storaged /etc/fdfs/storage.conf start

# 检查服务,storage 默认监听在 23000 端口
[root@public-server fdfs]# ps aux|grep fdfs
root     23160  0.0  0.0 155256  4860 ?        Sl   22:58   0:00 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
root     23502  1.3  0.4 150144 67164 ?        Sl   23:04   0:01 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
root     23585  0.0  0.0 112824   980 pts/0    S+   23:05   0:00 grep --color=auto fdfs
[root@public-server fdfs]# ss -tnlp|grep 23000
LISTEN     0      1024         *:23000                    *:*                   users:(("fdfs_storaged",pid=23502,fd=5))
  • 配置开机自启动
[root@public-server fdfs]# chmod +x /etc/rc.d/rc.local
[root@public-server fdfs]# vim /etc/rc.d/rc.local
# 在最后面加入配置
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start

4.5 修改 client.conf

[root@public-server ~]# cd /etc/fdfs/
[root@public-server fdfs]# vim client.conf
base_path = /data/tracker # tracker 配置文件中 base_path 定义的目录
tracker_server = 10.10.11.166:22122 # 指定 tracker 服务的 IP 和端口

5. 安装 Nginx 和 fastdfs-nginx-module

5.1 解压 fastdfs-nginx-module

[root@public-server src]# tar xf fastdfs-nginx-module-1.22.tar.gz
[root@public-server src]# cd fastdfs-nginx-module-1.22/src/

[root@public-server src]# vim config # 将 /usr/local 替换为 /usr
:% s#/usr/local#/usr#g   

# 其实主要是修改这两行配置
ngx_module_incs="/usr/include"
CORE_INCS="$CORE_INCS /usr/include"

5.2 编译安装 Nginx

[root@public-server src]# tar xf nginx-1.18.0.tar.gz
[root@public-server src]# cd nginx-1.18.0
[root@public-server nginx-1.18.0]# useradd -r nginx # 创建 nginx 用户
[root@public-server nginx-1.18.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --add-module=/usr/local/src/fastdfs-nginx-module-1.22/src/
[root@public-server nginx-1.18.0]# make -j 4 && make install

5.3 复制并修改 fastdfs-ngin-module 中的配置文件

[root@public-server nginx-1.18.0]# cp /usr/local/src/fastdfs-nginx-module-1.22/src/mod_fastdfs.conf /etc/fdfs/
[root@public-server nginx-1.18.0]# vim /etc/fdfs/mod_fastdfs.conf
# 修改配置
connect_timeout=10 # 连接超时时长
tracker_server=10.10.11.166:22122 # 指定 tracker 服务的 IP 和端口
url_have_group_name = true # 改为 true 默认 false
store_path0=/data/storage # 配置为 storage.conf 中 base_path 定义的目录

5.4 复制 http.conf 和 mime.types 文件

[root@public-server nginx-1.18.0]# cd /usr/local/src/fastdfs-6.06/conf/
# 将 http.conf,mime.types 两个文件拷贝到 /etc/fdfs/ 目录下
[root@public-server conf]# cp http.conf mime.types /etc/fdfs/

5.5 创建一个软连接,在 /data/storage 文件存储目录下创建软连接,将其链接到实际存放数据 的目录

[root@public-server conf]# ln -sv /data/storage/data/ /data/storage/data/M00
"/data/storage/data/M00" -> "/data/storage/data/"

5.6 编辑 nginx.conf 配置文件

[root@public-server ~]# vim /usr/local/nginx/conf/nginx.conf
# 修改配置
    server {
        listen       8001; # 我这里修改了端口,因为我的测试机 80 端口被占用了
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }
    # 主要是加上了下面的这个 location ~/group([0-9])/M00
        location ~/group([0-9])/M00 {
            ngx_fastdfs_module;
        }
  • 启动 Nginx
[root@public-server ~]# /usr/local/nginx/sbin/nginx

6. 测试文件服务

  • 找一张图片放到服务器上,我这里随便找了一个图片放在了 /root 目录下面
[root@public-server ~]# ll springboot.jpg
-rw-r--r-- 1 root root 44698 10月 20 2019 springboot.jpg
  • 上传测试图片,如果上传成功你会得到返回的文件名
[root@public-server ~]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /root/springboot.jpg
group1/M00/00/00/CgoLpl8e9YGAaHhjAACumtGPxf4986.jpg # 这个就是返回的文件名
  • 访问文件测试,在浏览器访问 nginx 的 IP+端口/返回的文件名

2a09845e6b210cfc7ba33d2dbfcbd304.png

到这里单机版的 FastdFS 服务器就部署好了,在部署的过程中踩了很多坑,发现 FastdFS 如果你在编译安装的时候出现一些找不到一些 .h 或者.c的文件可以换个版本试试,我在编译 Nginx 是发现 --add-module 模块是总是报错,当时使用的版本是 fastdfs-nginx-module-1.21 最后换了 fastdfs-nginx-module-1.22 编译就通过了。

7. 参考文档

https://www.codepeople.cn/2019/01/14/CentOS7.4-FastDFS-install/

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值