0
点赞
收藏
分享

微信扫一扫

fastdfs分布式集群环境搭建完整版(源码安装fastdfs、整合源码安装nginx)

Soy丶sauce 2022-03-30 阅读 53


后面的命令都将所有软件放在了/opt目录下方便管理 

以root权限执行比较方便,在安装过程中有些文件夹只有root才有权限

su root


第一步、安装fastdfs

为了方便,先安装git


安装git  通过git下载,直接下载项目进行 编译、安装

Centos

yum install git -y

Ubuntu 

apt install git -y

安装fastdfs准备工作:安装编译环境和依赖



安装编译环境和依赖 后面所有依赖我干脆一次性放在了一起进行安装了

Centos: 

yum install make cmake gcc gcc-c++ openssl openssl-devel  zlib zlib-devel pcre pcre-devel -y

Ubuntu:自带c编译环境,所以依赖比Centos少了C部分依赖

apt install zlib1g-dev libpcre3 libpcre3-dev openssl ssh -y



 git下载 fastdfs 的依赖 libfastcommon,并且通过编译安装该依赖(注意文件夹权限问题)

cd /opt
git clone https://github.com/happyfish100/libfastcommon.git

进入项目进行编译安装:使用root权限

cd libfastcommon/
./make.sh && ./make.sh install

完成! 



正式安装fastdfs

同样通过git下载

cd /opt
git clone https://github.com/happyfish100/fastdfs.git

进入项目进行编译安装

cd fastdfs/
./make.sh && ./make.sh install

 第一步fastdfs安装完成


 第二步、整合fastdfs和nginx


关于安装Nginx:

     如果有多台tracker服务器则可以通过nginx实现负载均衡,我这里就只有一台所以就不安装了,只需要在storage服务器上安装nginx,用来提供web端的下载文件或者浏览。 


在storage服务器上

通过git下载fastdfs-nginx模块

cd /opt
git clone https://github.com/happyfish100/fastdfs-nginx-module.git

下载nginx的源码包上传到服务器

​​http://nginx.org/en/download.html​​

也可以在服务器上用wget命令下载

wget http://nginx.org/download/nginx-1.16.1.tar.gz

进行解压缩到/opt下

tar -xzvf nginx-1.16.1.tar.gz -C /opt

进入解压缩后的源码目录下,通过./configure --添加参数来添加模块 

cd /opt/nginx-1.16.1/
./configure --add-module=/opt/fastdfs-nginx-module/src

进行编译安装 

make && make install

nginx -V  可以检查添加模块是否成功

fastdfs分布式集群环境搭建完整版(源码安装fastdfs、整合源码安装nginx)_nginx

如果nginx命令不能直接执行则建立一个软链接:有就不用建立了

建立软连接

ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/

设置开机自启 apt install vim编辑器

vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx service
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

查看状态: start是启动,也可以通过nginx -s reload重启、nginx -s stop停止 、nginx 启动

systemctl status nginx.service

 enable是开机自启,disable永不启用


先不用直接启动nginx,因为少了几个文件还没有复制到对应目录下,回导致nginx启动起来了但是不生效,遇到问题查看错误日志

/usr/local/nginx/logs/error.log查看一下报了什么错误,然后解决问题即可



另外需要复制几个文件到/etc/fastdfs下 

复制配置文件

复制fastdfs-nginx模块的配置文件到/etc/fdfs下

cp /opt/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

 复制fastdfs源码项目下conf文件夹的http.conf和mime.types文件到/etc/fastdfs文件夹下

cd /opt/fastdfs/conf/
cp http.conf mime.types /etc/fdfs/


第三步、编辑tracker、storage、nginx 配置文件


需要修改的文件有

  1. tracker.conf
  2. storage.conf
  3. client(测试用的)
  4. nginx.conf
  5. mod_fastdfs.conf

1、tracker

配置tracker

这个路径用来存放日志

mkdir -p /home/fdfsdata

执行下面命令 

cd /etc/fdfs/   #切换路径
cp tracker.conf.sample tracker.conf #在/etc/fdfs下拷贝一份
vim tracker.conf #进行编辑

有可能需要修改的配置如下: 根据项目情况修改即可

# 启用配置文件
disabled=false
# 设置tracker的端口号
port=22122
# 设置tracker的数据文件和日志目录(需手动创建)
base_path=/home/fdfsdata
# 设置http端口号
http.server_port=80

 2、storage

配置storage 

cd /etc/fdfs
cp storage.conf.sample storage.conf
vim storage.conf

修改base_path 、store_path0 和 tracker_server

可能需要改动的配置: 

group_name=group1         # 组名(第一组为group1,第二组为group2,依次类推...)
base_path=/home/fdfsdata # 数据和日志文件存储根目录
store_path_count=1 # 存储路径个数,需要和store_path个数匹配
store_path0=/home/fdfsdata # 第一个存储目录,第二个存储目录起名为:store_path1=xxx,其它存储目录名依次类推...

# 不可以 localhost或者 127.0.0.1 得改成相应ip,否则会包错在日志中记录
tracker_server=192.168.1.201:22122 # tracker服务器IP和端口,有多个则添加多行
http.server_port=80 #storage的http服务器端口

 3、client

配置client

和前面的注释一样

cd /etc/fdfs
cp client.conf.sample client.conf
vim /etc/fdfs/client.conf

可能修改的配置 

base_path=/home/fdfsdata/logs            # 保存日志目录
tracker_server=192.168.1.201:22122 # tracker服务器IP和端口,有多个按行添加

4、nginx.conf(在tracker上)

配置nginx配置文件

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

添加URl拦截,监听80端口 

location ~/group1/M00 {
alias /home/fdfsdata/; #注意alias的末尾一定要以 / 结尾,否则导致400错误
ngx_fastdfs_module;
}

关于root和alias用法看这里:

5、​mod_fastdfs.conf(重要文件)

vim /etc/fdfs/mod_fastdfs.conf

可能需要修改的 

base_path=/home/fdfsdata/logs
tracker_server=192.168.1.201:22122 #改成相应ip
store_path0=/home/fdfsdata

如果是在一台机器上修改的配置文件

将配置文件同步到其它服务器上:通过rsync命令传输文件格式在下面

目的是将/etc/fdfs 下所有的配置文件复制到192.168.1.202上,注意权限问题这里是以root用户登录到192.168.1.202的

rsync -rvl /etc/fdfs/ root@192.168.1.202:/etc/fdfs

如图: 

fastdfs分布式集群环境搭建完整版(源码安装fastdfs、整合源码安装nginx)_服务器_02

此时你会发现192.168.1.202上就有了配置文件 


最后、依次启动fastdfs集群,并测试fastdfs


启动tracker服务器上tracker服务

fdfs_trackerd /etc/fdfs/tracker.conf start

检查:

ps -ef|grep tracker.conf
netstat -pln|grep fdfs



启动storage服务器的storage和nginx服务

fdfs_storaged /etc/fdfs/storage.conf start
nginx -s reload

检查启动情况 

netstat -unltp|grep fdfs

tail /opt/fastdfs/logs/storaged.log #查看日志是否有报错,这里的路径对应上面配置的日志路径



 利用客户端测试上传文件

然后通过命令测试上传,tracker和storage都启动了在tracker服务器上上传测试

fdfs_upload_file /etc/fdfs/client.conf  上传文件的路径+全称

fdfs_upload_file /etc/fdfs/client.conf ./moon.png

在storage.conf配置文件的 

fastdfs分布式集群环境搭建完整版(源码安装fastdfs、整合源码安装nginx)_nginx_03

检查上传是否成功

通过浏览器访问一下例如

 ​​http://192.168.1.202/group1/M00/data/00/00/wKgByl3glc6Abge9AAF4t-UF88U476.png​​

实际就是通过nginx的url映射成了 /home/angel/fdfsdata/data/00/00/wKgByl3glc6Abge9AAF4t-UF88U476.png

其中/group1/M00通过nginx的location 中的alias去除了配置去除了










举报

相关推荐

0 条评论