FastDFS6.0.6在腾讯云单机上部署

FastDFS6.0.6在腾讯云单机上部署

由于未知原因始终无法在腾讯云上部署FastDFS5.0.5

查看trackerd.log发现 INFO - file: tracker_relationship.c, line: 389, selecting leader…

storaged.log报错:

ERROR - file: tracker_proto.c, line: 48, server: 1.15.170.166:22122, response status 2 != 0

ERROR - file: tracker_client_thread.c, line: 2377, fdfs_recv_response fail, result: 2

经过漫长的摸索得知:需要更换新版本Fastdfs6.0.6。具体原因没搞清楚,麻烦知道的大佬在评论区指点指点。

1.下载所需的包

  • libfastcommon-1.0.43:https://github.com/happyfish100/libfastcommon/releases/tag/V1.0.43
  • fastdfs-6.06:https://github.com/happyfish100/fastdfs/releases/tag/V6.06
  • fastdfs-nginx-module-1.22:https://github.com/happyfish100/fastdfs-nginx-module/releases/tag/V1.22
  • nginx-1.20.1:http://nginx.org/download/nginx-1.20.1.tar.gz

使用xftp将文件上传到/home/apk/fastdfs_install目录下

2.安装依赖&开放相关端口号

2.1 安装依赖

  1. gcc gcc-c++

    yum -y install gcc gcc-c++
    
  2. pcre-devel

    yum -y install pcre-devel
    
  3. zlib-devel

    yum -y install zlib-devel
    

2.2 开放端口号

#tracker默认端口号22122
firewall-cmd --zone=public --add-port=22122/tcp --permanent 

#storage默认端口号23000
firewall-cmd --zone=public --add-port=23000/tcp --permanent 

#nginx访问端口号8888
firewall-cmd --zone=public --add-port=8888/tcp --permanent

3.安装FastDFS

3.1 安装libfastcommon

cd /home/apk/fastdfs_install
tar -zxvf libfastcommon-1.0.43.tar.gz
cd libfastcommon-1.0.43
./make.sh
./make.sh install

检查,出现libfastcommon.so即成功

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

3.2 安装fastdfs

cd /home/apk/fastdfs_install
tar -zxvf fastdfs-6.06.tar.gz
cd libfastcommon-1.0.43
./make.sh
./make.sh install

在配置tracker和storage之前先将/home/apk/fastdfs_install/fastdfs-5.11/conf下的文件全都复制到/etc/fdfs下(因为fastDFS启动的时候默认使用这个位置的配置文件)

cp /home/apk/fastdfs_install/fastdfs-5.11/conf/* /etc/fdfs/

为了更清晰的管理tracker和storage,我们可以设计如下的文件目录来记录运行时产生的数据和日志:

/home/fastdfs #(需手工创建,base_path)
	|_data #运行期间产生的数据,包括用户上传的文件(自动产生,无需我们创建)
    |_logs #运行期间产生的日志(自动产生,无需我们创建)
mkdir /home/fastdfs

3.3 单机部署

3.3.1 配置tracker

打开/etc/fdfs/tracker.conf进行编辑:

vim /etc/fdfs/tracker.conf

编辑如下内容:

#注意服务器是 NAT 方式所以此处绑定的是内网 IP 
# 可以使用命令查看 ifconfig -a 没有公网的IP
bind_addr = 172.xxx.xxx.xxx

# tracker 服务器端口(默认22122,一般不修改)
port=22122

# 存储日志和数据的根目录 
base_path=/home/fastdfs

# use_storage_id 设置为 true 后需要在 storage_ids.conf 设置双 IP 
use_storage_id = true

配置 storage_ids.conf

vim /etc/fdfs/storage_ids.conf

#这里有两行,注释后面一行
#一个内网 IP 一个公网 IP
100001   group1  172.XXX.XXX.XXX,123.XXX.XXX.XXX
#100002   group1  172.XXX.XXX.XXX,123.XXX.XXX.XXX
3.3.2 配置storage

打开/etc/fdfs/storage.conf进行编辑:

vim /etc/fdfs/storage.conf

编辑如下内容:

# storage服务端口(默认23000,一般不修改)
port=23000

# 数据和日志文件存储根目录  
base_path=/home/fastdfs

# 第一个存储目录  
store_path0=/home/fastdfs 

# 重点是这个,一定注意格式     内网,外网:端口号
# 这里同样注释掉后面一行
tracker_server = 172.XXX.XXX.XXX,123.XXX.XXX.XXX:22122
#tracker_server = 172.XXX.XXX.XXX,123.XXX.XXX.XXX:22122

# http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)
http.server_port=8888
3.3.3 启动、关闭与测试
service fdfs_trackerd start #stop/restart(修改配置一定要restart)
service fdfs_storaged start #stop/restart(修改配置一定要restart)

查看是否成功启动tracker和storage:

netstat -unltp|grep fdfs

成功状态下应显示如下信息:

tcp        0      0 0.0.0.0:23000           0.0.0.0:*               LISTEN      3322/fdfs_storaged  
tcp        0      0 172.17.0.17:22122       0.0.0.0:*               LISTEN      3258/fdfs_trackerd

测试tracker和storage是否在通讯:

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

在这里插入图片描述

4.安装Nginx

4.1 安装nginx

cd /home/apk/fastdfs_install
tar -zxvf nginx-1.20.1.tar.gz
cd nginx-1.20.1
make.sh
make.sh install

4.2 启动与关闭

/usr/local/nginx/sbin/nginx #启动
/usr/local/nginx/sbin/nginx -s reload #重启
/usr/local/nginx/sbin/nginx -s stop #快速关闭
/usr/local/nginx/sbin/nginx -s quit #优雅关闭
/usr/local/nginx/sbin/nginx -v #查看nginx版本

在浏览器地址栏输入nginx服务器地址即可看到nginx首页:

#公网IP
http://192.168.0.104

4.3 添加fastdfs-nginx-module

在这之前先关闭nginx

/usr/local/nginx/sbin/nginx -s quit

首先解压fastdfs-nginx-module

cd /home/apk/fastdfs_install
tar -zxvf fastdfs-nginx-module-1.22.tar.gz

编辑fastdfs-nginx-module-1.22/src/目录下的config文件(没有后缀)

ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

拷贝fastdfs-nginx-module模块的配置文件mod_fastdfs.conf到/etc/fdfs目录中并编辑

cp /home/apk/fastdfs_install/fastdfs-nginx-module-1.20/src/mod_fastdfs.conf /etc/fdfs/
vim /etc/fdfs/mod_fastdfs.conf

修改内容如下,此处的store_path0应该与storage.conf中的store_path0一致。

base_path=/home/fastdfs

store_path0=/home/fastdfs

# 公网 IP
tracker_server=123.123.1.23:22122 	

storage_server_port=23000(默认配置为23000)

url_have_group_name = true

进入到nginx解压后的文件中,添加fastdfs-nginx-module模块

cd /home/apk/fastdfs_install/nginx-1.20.1

./configure --add-module=/root/fastdfs-nginx-module-1.20/src

make
make install

查看fastdfs-nginx-module是否安装成功:

#注意是大写“V”,查看ngix版本、编译器版本和configure参数(添加的模块信息在这里可以看到)
/usr/local/nginx/sbin/nginx -V 
nginx version: nginx/1.20.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
configure arguments: --add-module=/home/apk/fastdfs_install/fastdfs-nginx-module-1.22/src

4.4 配置Nginx

vim /usr/local/nginx/conf/nginx.conf

添加下面的内容

server {
    listen       8888;    #该端口为storage.conf中的http.server_port相同
    server_name  localhost;
    
    location ~/group[0-9]/ {
        ngx_fastdfs_module;
    }
    
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
   		root   html;
    }
}

5. 测试

开启所有服务:

service fdfs_trackerd start
service fdfs_storaged start
/usr/local/nginx/sbin/nginx

编辑上传测试所用的client.conf文件

vi /etc/fdfs/client.conf

修改如下为:

base_path=/home/fastdfs

tracker_server=123.123.1.23:22122

上传文件

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf ~/x.jpg

上传成功的话,控制台会输出上传文件的fileId,类似于

group1/M00/00/00/oYYBAGCwdn-AePvEAAD77_Ecb0w534.jpg

得到fileId以后,在主机浏览器地址栏输入以下完整URL即可查看文件

http://123.123.1.23:8888/group1/M00/00/00/oYYBAGCwdn-AePvEAAD77_Ecb0w534.jpg

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值