编译环境准备
yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y
磁盘目录准备以及安装
mkdir /home/dfs #创建数据存储目录
cd /usr/local/src #切换到安装目录准备下载安装包
-
安装libfastcommon
git clone https://github.com/happyfish100/libfastcommon.git --depth 1
cd libfastcommon/
./make.sh && ./make.sh install #编译安装
-
安装FastDFS
cd /usr/local/src
git clone https://github.com/happyfish100/fastdfs.git --depth 1
cd fastdfs/
./make.sh && ./make.sh install #编译安装
#配置文件准备
cp /usr/local/src/fastdfs/conf/http.conf /etc/fdfs/ #供nginx访问使用
cp /usr/local/src/fastdfs/conf/mime.types /etc/fdfs/ #供nginx访问使用
#tracker.conf storage.conf client.conf 默认已经有,没有的话执行下面三个命令
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf #客户端文件,测试用
-
安装fastdfs-nginx-module
cd /usr/local/src
git clone https://github.com/happyfish100/fastdfs-nginx-module.git --depth 1
#不用make
cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs
-
安装nginx
cd /usr/local/src
wget http://nginx.org/download/nginx-1.15.4.tar.gz #下载nginx压缩包
tar -zxvf nginx-1.15.4.tar.gz #解压
cd nginx-1.15.4/
#添加fastdfs-nginx-module模块
./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/
make && make install #编译安装
因为我使用宝塔系统,已经安装了nginx,没有执行安装nginx这一步,可以在安装完fastdfs-nginx-module之后,使用宝塔把nginx卸载掉(有重要配置请备份),重新安装一次,安装时选择编译安装添加--add-module=/usr/local/src/fastdfs-nginx-module/src/
单机部署配置
根据命令 ifconfig 获取本机ip
-
tracker配置
#服务器ip为 上图inet,文章用 192.168.1.1做示例
vim /etc/fdfs/tracker.conf
#需要修改的内容如下
port=22122 # tracker服务器端口(默认22122,一般不修改)
base_path=/home/dfs # 存储日志和数据的根目录
-
storage配置
-
vim /etc/fdfs/storage.conf
#需要修改的内容如下
port=23000 # storage服务端口(默认23000,一般不修改)
base_path=/home/dfs # 数据和日志文件存储根目录
store_path0=/home/dfs # 第一个存储目录
tracker_server=192.168.1.1:22122 # tracker服务器IP和端口,有多个添加多个
http.server_port=82 # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致。注意,宝塔系统的端口也为8888,所以改为82)
-
client测试
#启动程序trackerd和storaged
fdfs_trackerd /etc/fdfs/tracker.conf restart
fdfs_storaged /etc/fdfs/storage.conf restart
vim /etc/fdfs/client.conf
#需要修改的内容如下
base_path=/home/dfs
tracker_server=192.168.1.1:22122 #tracker服务器IP和端口
#保存后测试,上传预先准备的文件,返回ID表示成功 如:group1/M00/00/00/xxx.jpg
fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/test.jpg
-
配置nginx访问
vim /etc/fdfs/mod_fastdfs.conf
#需要修改的内容如下
tracker_server=192.168.1.1:22122 #tracker服务器IP和端口
url_have_group_name=true
store_path0=/home/dfs
#配置nginx.config,以下是我本地路径
vim /usr/local/nginx/conf/nginx.conf
#添加如下配置
server {
listen 82; ## 该端口为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;
}
}
#测试下载,用外部浏览器访问刚才已传过的test图片,能显示图片表示部署成功(注意在防火墙已开通端口)
分布式部署
分布式部署,主要修改每台服务的其中两个配置
假设有192.168.1.1,192.168.1.2,192.168.1.3,且都完成了单机部署
- storage配置
vim /etc/fdfs/storage.conf
#需要修改的内容如下
tracker_server=192.168.1.1:22122 # 服务器1
tracker_server=192.168.1.2:22122 # 服务器2
tracker_server=192.168.1.3:22122 # 服务器3
` - nginx配置
vim /etc/fdfs/mod_fastdfs.conf
#需要修改的内容如下
tracker_server=192.168.52.2:22122 # 服务器1
tracker_server=192.168.52.3:22122 # 服务器2
tracker_server=192.168.52.4:22122 # 服务器3
url_have_group_name=true
store_path0=/home/dfs
#配置nginx.config
vim /usr/local/nginx/conf/nginx.conf
#添加如下配置
server {
listen 82; ## 该端口为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;
}
}