后面的命令都将所有软件放在了/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 可以检查添加模块是否成功
如果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 配置文件
需要修改的文件有
- tracker.conf
- storage.conf
- client(测试用的)
- nginx.conf
- 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
如图:
此时你会发现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配置文件的
检查上传是否成功
通过浏览器访问一下例如
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去除了配置去除了