准备环境
- 文件准备
nginx-1.14.0.tar.gz
FastDFS_v5.08.tar.gz
fastdfs-nginx-module_v1.16.tar.gz
libfastcommon-master.zip
- 服务器
tracker服务器:192.168.1.85/86
storage服务器:192.168.1.72/73/74/75
安装依赖包(全部服务器)
- 在安装FastDFS和Nginx之前,需确保gcc、gcc-c++、 libstdc++-devel、make等依赖库和工具已经安装
yum -y install gcc gcc-c++ libstdc++-devel pcre-devel zlib-devel wget make
yum -y groupinstall 'Development Tools'
安装libfastcommon类库(全部服务器)
unzip libfastcommon-master.zip -d /usr/local/
cd /usr/local/
cd libfastcommon-master/
./make.sh
./make.sh install
安装Fastdfs(全部服务器)
tar -xvzf FastDFS_v5.08.tar.gz -C /usr/local/
cd /usr/local/FastDFS/
./make.sh
./make.sh install
FastDFS安装完成之后,所有配置文件在/etc/fdfs目录下,tracker需要tracker.conf配置文件,storage需要storage.conf配置文件。
安装 tracker(服务器 85/86)
- 将tracker.conf.sample文件重命名为tracker.conf,然后修改配置文件/etc/fdfs/tracker.conf
# 存储日志和数据的根目录
mkdir /root/fastdfs
cd /etc/fdfs
cp tracker.conf.sample tracker.conf
- 修改配置文件
vi tracker.conf
#启用配置文件
disabled=false
#设置tracker的端口号
port=22122
#设置tracker的数据文件和日志目录(需手动创建)
base_path=/root/fastdfs
#设置http端口号
http.server_port=8080
- 启动 tracker
# 启动
fdfs_trackerd /etc/fdfs/tracker.conf restart
- 判断是否启动成功
[root@localhost ~]# netstat -unltp | grep fdfs
tcp 0 0 0.0.0.0:22122 0.0.0.0:* LISTEN 6078/fdfs_trackerd
安装 storage (服务器 72/73/74/75)
- 创建存储目录和配置文件
mkdir /root/fastdfs
cd /etc/fdfs
cp storage.conf.sample storage.conf
- 修改配置
vi /etc/fdfs/storage.conf
# 内容
group_name=group1 # 组名(第一组为group1,第二组为group2,依次类推...)
base_path=/root/fastdfs # 数据和日志文件存储根目录
store_path0=/root/fastdfs #第一个存储目录,第二个存储目录起名为:store_path1=xxx,其它存储目录名依次类推...
store_path_count=1 # 存储路径个数,需要和store_path个数匹配
tracker_server=192.168.1.85:22122 # tracker服务器IP和端口
tracker_server=192.168.1.86:22122 # tracker服务器IP和端口
- 启动Storage
[root@localhost fdfs]# fdfs_storaged /etc/fdfs/storage.conf restart
[root@localhost fdfs]# netstat -unltp | grep fdfs
tcp 0 0 0.0.0.0:23000 0.0.0.0:* LISTEN 5551/fdfs_storaged
- 验证storage是否登记到tracker服务器
# 可以在任一存储节点上使用如下命令查看集群的状态信息
fdfs_monitor /etc/fdfs/storage.conf
在storage上安装nginx
安装
- 解压
tar -xvzf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local
tar -xvzf nginx-1.14.0.tar.gz -C /usr/local
- 配置软链接
ln -sv /usr/include/fastcommon /usr/local/include/fastcommon
ln -sv /usr/include/fastdfs /usr/local/include/fastdfs
ln -sv /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
- 添加 fastdfs-nginx-module-master模块
cd /usr/local/nginx-1.14.0/
./configure --prefix=/usr/local/nginx --add-module=/usr/local/fastdfs-nginx-module/src
- 安装
make
make install
- 安装成功,查看版本信息
/usr/local/nginx/sbin/nginx -V
配置
配置fastdfs-nginx-module
- 进入fastdfs-nginx-module的src目录,将md_fastdfs.conf配置文件拷贝到/etc/fdfs/目录中
cd /usr/local/fastdfs-nginx-module/src
cp mod_fastdfs.conf /etc/fdfs/
- 配置 mod_fastdfs.conf
vim /etc/fdfs/mod_fastdfs.conf
# 改动参数
base_path=/root/fastdfs #保存日志目录
tracker_server=192.168.1.85:22122
tracker_server=192.168.1.86:22122
storage_server_port=23000 #storage服务器的端口号
group_name=group1 #当前服务器的group名
url_have_group_name = true #文件url中是否有group名
store_path_count=1 #存储路径个数,需要和store_path个数匹配
store_path0=/root/fastdfs #存储路径
group_count = 2 #设置组的个数
# 在末尾增加组的具体信息
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/root/fastdfs
[group2]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/root/fastdfs
- 建立M00至存储目录的符号连接
ln -s /root/fastdfs/data /root/fastdfs/data/M00
ll /root/fastdfs/data/M00
配置nginx
- 编辑/usr/local/nginx/conf配置文件目录下的nginx.conf,设置添加storage信息并保存。
vim /usr/local/nginx/conf/nginx.conf
# 修改
user root;
listen 8080;
# 在server段中添加
location ~/group[1-2]/M00 {
root /root/fastdfs/data;
ngx_fastdfs_module;
}
- 复制fastdfs中的http.conf、mime.types文件到/etc/fdfs
cp /usr/local/FastDFS/conf/http.conf /usr/local/FastDFS/conf/mime.types /etc/fdfs
运行
[root@localhost ~]# /usr/local/nginx/sbin/nginx
ngx_http_fastdfs_set pid=12768
[root@localhost ~]# netstat -unltp | grep nginx
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 12769/nginx
# 重启 nginx
/usr/local/nginx/sbin/nginx -s reload
在tracker上安装nginx
- 在tracker上安装的nginx主要为了提供http访问的反向代理、负载均衡以及缓存服务
安装
- 解压
tar -xvzf nginx-1.14.0.tar.gz -C /usr/local
- 运行./configure进行安装前的设置,主要设置安装路径
cd /usr/local/nginx-1.14.0/
./configure --prefix=/usr/local/nginx
- 安装
make
make install
配置
- 编辑/usr/local/nginx/conf配置文件目录下的nginx.conf,设置负载均衡
vim /usr/local/nginx/conf/nginx.conf
# 配置信息
worker_processes 4; #根据CPU核心数而定
events {
worker_connections 65535; #最大链接数
use epoll; #新版本的Linux可使用epoll加快处理性能
}
http {
#设置group1的服务器
upstream fdfs_group1 {
server 192.168.1.72:8080 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.1.73:8080 weight=1 max_fails=2 fail_timeout=30s;
}
#设置group2的服务器
upstream fdfs_group2 {
server 192.168.1.74:8080 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.1.75:8080 weight=1 max_fails=2 fail_timeout=30s;
}
server {
#设置服务器端口
listen 8080;
#设置group1的负载均衡参数
location /group1/M00 {
proxy_pass http://fdfs_group1;
}
#设置group2的负载均衡参数
location /group2/M00 {
proxy_pass http://fdfs_group2;
}
}
}
运行
- 启动nginx,确认启动是否成功
[root@localhost ~]# /usr/local/nginx/sbin/nginx
ngx_http_fastdfs_set pid=12768
[root@localhost ~]# netstat -unltp | grep nginx
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 12769/nginx
上传文件测试
配置client.conf文件
cp client.conf.sample client.conf
vim /etc/fdfs/client.conf
# 修改以下参数
base_path=/root/fastdfs #日志存放路径
tracker_server=192.168.1.85:22122
tracker_server=192.168.1.86:22122
http.tracker_server_port=8080
上传文件测试
[root@localhost fdfs]# fdfs_upload_file /etc/fdfs/client.conf /root/test.jpg
group2/M00/00/00/wKg26VncfamAEqZ0AAu-4Kcs3QI677.jpg
- 使用浏览器访问
http://192.168.1.85:8080/group2/M00/00/00/wKg26VncfamAEqZ0AAu-4Kcs3QI677.jpg