ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

在Ubuntu服务器上安装fastdfs

2021-02-12 18:01:05  阅读:243  来源: 互联网

标签:Nginx fastdfs 服务器上安装 nginx tracker conf Ubuntu path


在Ubuntu上安装fastdfs

在Ubuntu上安装fastdfs

最近在做项目的时候需要用到图片服务器,所以就搭建了一台,这里搭建的fastdfs服务使用的服务器是Ubuntu,有相同需求的小伙伴可以参考,如果有小伙伴用的是Centos服务器,可以参考文末的博客完成相应的安装。话不多说,开始肝!

安装包下载

安装FastDFS需要用到下面的安装包:

安装fastdfs

安装包下载完之后,使用远程连接工具将安装包传到Ubuntu上

libcommon安装

进入安装包所在目录,这里首先要安装的是libcommon

# 解压libcommon对应的压缩包
tar -zxvf libfastcommon-1.0.48.tar.gz
# 进入解压后的目录
cd libfastcommon-1.0.48/
# 执行编译脚本
./make.sh
# 安装
./make.sh install
# libfastcommon.so 安装到了/usr/lib64/libfastcommon.so,但是FastDFS主程序设置的lib目录是/usr/lib,所以可以创建/usr/lib64/libfastcommon.so到/usr/lib/libfastcommon.so的软链接。
# ln -s libfastcommon.so /usr/lib/libfastcommon.so

注: 如果执行编译脚本的时候如果报找不到make命令的错误,则表示系统中没有安装make命令,需要先安装一下 安装过程如下:

apt install -y gcc automake autoconf libtool make

fastdfs安装

进入安装包所在目录,接下来安装fastdfs

# 解压fastdfs对应的压缩包
tar -zxvf fastdfs-6.07.tar.gz
# 进入解压后的目录
cd fastdfs-6.07/
# 执行编译脚本
./make.sh
# 安装
./make.sh install
# 复制fastdfs安装包下面的配置文件到/etc/fdfs目录下
cp * /etc/fdfs
# 进入/etc/fdfs目录
cd /etc/fdfs

配置并启动Tracker服务

# 修改tracker.conf文件
vim tracker.conf
# 修改base_path属性,自定义tracker的数据和日志的输出目录
base_path=/candywall/fastdfs/tracker
# 保存并退出
:wq
# 创建刚才在tracker.conf中自定义的base_path目录
mkdir -p /candywall/fastdfs/tracker
# 配置防火墙,开放Tracker服务占用的22122端口
ufw enable 22l22
# 启动Tracker服务
fdfs_trackerd /etc/fdfs/tracker.conf start

配置并启动Storage服务

# 修改storage.conf文件
vim storage.conf
# 修改base_path属性,自定义tracker的数据和日志的输出目录
base_path=/candywall/fastdfs/storage
# 修改store_path属性,如果不配置就是跟base_path一样,我这里就直接跟配置base_path一样的路径了
store_path0=/candywall/fastdfs/storage
# 修改tracker_server地址,tracker服务所在的服务器的IP地址,有域名的也可以改成 域名:22122,如果有多个tracker服务,可以配置多行,官方默认给我配了两行,如果只有一个tracker服务,可以注释掉一行。
tracker_server = 192.168.153.132:22122
# 保存并退出
:wq
# 创建刚才在storage.conf中自定义的base_path目录
mkdir -p /candywall/fastdfs/storage
# 配置防火墙,开放Storage服务占用的23000端口
ufw enable 23000
# 启动Storage服务
fdfs_storaged /etc/fdfs/storage.conf start

查看Tracker和Storage服务是否都启动成功

# 查看进程是否启动
ps aux|grep fdfs
# 查看服务监听的端口是否正确
netstat -unltp|grep fdfs

配置Client,并进行文件上传测试

fastdfs安装后自带了一个Client客户端,用户可以通过使用它,测试文件服务是否能正常工作!为后期使用代码或者其他客户端调用做准备!

# 修改client.conf文件
vim client.conf
# 修改base_path属性,自定义client的数据和日志的输出目录
base_path=/candywall/fastdfs/client
# 修改tracker_server地址,tracker服务所在的服务器的IP地址,有域名的也可以改成 域名:22122,如果有多个tracker服务,可以配置多行,官方默认给我配了两行,如果只有一个tracker服务,可以注释掉一行。
tracker_server = 192.168.153.132:22122
# 保存并退出
:wq
# 创建刚才在client.conf中自定义的base_path目录
mkdir -p /candywall/fastdfs/client

测试文件上传,我这里做测试上传的是一张图片(fastdfs的安装包的conf目录下自带的)

下面提供两个测试命令,来测试上传这张图片,命令不分先后

第一个命令:

fdfs_test fdfs_test /etc/fdfs/client.conf upload anti-steal.jpg

上传成功控制台会输出图片上传后的访问地址,包括大图和小图的地址:

fdfs_test命令上传图片测试

第二个命令:

fdfs_upload_file /etc/fdfs/client.conf anti-steal.jpg

上传成功会返回图片的ID,返回的文件ID由group、存储目录、两级子目录、fileid、文件后缀名(由客户端指定,主要用于区分文件类型)拼接而成。

fdfs_upload-file命令上传图片测试

至此,fastdfs服务都启动正常,可以上传文件了,不过现在还不能给其他非本地的客户端提供服务,还需要再配置web服务。

安装Nginx

为了让fastdfs可以被其他客户端使用Http方式访问,还需要配置web服务,这里使用Nginx。

配置fastdfs-nginx-module

为了让Nginx可以代理fastdfs的文件服务,需要先配置好fastdfs-nginx-module,以便后续编译安装Nginx的时候添加这个模块。

# 解压fastdfs-nginx-moudle对应的压缩包
tar -zxvf fastdfs-nginx-module-1.22.tar.gz
# 进入解压后的目录的src目录下
cd fastdfs-nginx-module-1.22/src/
# 修改config文件,将配置文件中的路径中包含/usr/local/都改成/usr/
# vim中切换到命令模式输入,进行文本替换
:%s#local/##g

安装Nginx所需依赖

# 没有安装的先把gcc安装上
apt intall gcc
# 安装gzip模块需要的zlib库,rewrite模块需要的pcre库,ssl功能需要的openssl库
apt install libpcre3 libpcre3-dev libssl-dev zlib1g-dev

安装Nginx

# 解压Nginx对应的压缩包
tar -zxvf nginx-1.19.6.tar.gz
# 进入解压后的目录
cd nginx-1.19.6/
# 配置编译规则,指定一些日志输出路径,方便出错后查找。
# 添加fastdfs和Nginx整合的模块,--add-module对应上面的fastdfs-nginx-module解压后源码所在路径
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/log/nginx/error.log \
--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/scgi \
--add-module=/usr/local/fastdfs/fastdfs-nginx-module-1.22/src

# 创建/var/temp/nginx目录
mkdir -p /var/temp/nginx

# 编译并安装
make && make install

fastdfs整合Nginx,完成一些配置

修改mod_fastdfs.conf

复制 fastdfs-nginx-module 源码目录下的mod_fastdfs.conf配置文件到/etc/fdfs 目录, 并修改

cd /usr/local/fastdfs/fastdfs-nginx-module-1.22/src/
cp mod_fastdfs.conf /etc/fdfs
cd /etc/fdfs
# 修改mod_fastdfs.conf文件
vim mod_fastdfs.conf
# 修改base_path属性,自定义路径
base_path=/candywall/tmp
# 修改tracker_server地址,tracker服务所在的服务器的IP地址,有域名的也可以改成 域名:22122,如果有多个tracker服务,可以配置多行。
tracker_server=192.168.153.132:22122
# 修改group_name为对应值
group_name=group1
# 将url_have_group_name设置为true
url_have_group_name=true
# 修改store_path0属性,值和storage.conf中的store_path0保持一致
storage_path0=/candywall/fastdfs/storage
# 修改完之后需要重启tracker和storage服务
fdfs_trackerd /etc/fdfs/tracker.conf restart
fdfs_storaged /etc/fdfs/storage.conf restart
# 创建刚才配置的base_path目录
mkdir -p /candywall/tmp

配置Nginx

修改Nginx安装目录下的conf下面的nginx.conf

cd /usr/local/nginx/conf/
vim nginx.conf
# 80端口一般留给部署网站使用,这里选择新增一个端口服务,配置如下:
server {
	listen 88;
	server_name 192.168.153.132;
	location /group/M00 {
	  ngx_fastdfs_module;	
	}
}
# 开放88端口
ufw allow 88
# 进入Nginx安装目录中的sbin目录
cd /usr/local/nginx/sbin
# 执行如下命令检测配置是否正确
./nginx -t
# 启动nginx
./nginx

首先在浏览器中访问Nginx 80端口处的主页服务,地址为:192.168.153.132,访问成功如下图所示:

Nginx 80端口首页

接下来去/candywall/storage/data/00/00/目录下找一张图片,复制图片名称,拼接出访问这个图片的URL,如:http://192.168.153.132:88/group1/M00/00/00/wKiZhGAl-JWAJH2uAABdreSfEnY836_big.jpg

在浏览器中访问,如果能看到图片,说明一切配置都成功!

注:如果在启动Nginx后,不能访问成功,可以去查看Nginx的错误日志,这个在编译安装Nginx的时候指定过存储路径(–error-log-path=/var/log/nginx/error.log),一般启动时的发生的错误都能在里面看到,根据错误解决即可!

如果有小伙伴使用Centos安装fastdfs,可以参考博客:https://www.cnblogs.com/chiangchou/p/fastdfs.html

标签:Nginx,fastdfs,服务器上安装,nginx,tracker,conf,Ubuntu,path
来源: https://blog.csdn.net/qq_38505969/article/details/113795934

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有