一、架构
共有2台机器:
机器A:192.168.126.134 角色:tracker/storage
机器B:192.168.126.135 角色:tracker/storage
二、安装步骤:
1、环境准备(需要什么命令就下载什么,全部下载比较费时间)(在2台机器分别操作)
yum install -y make cmake gcc gcc-c++ openssl openssl-devel pcre-devel zlib zlib-devel
如果出现以下错误:
先执行下面这3个命令,
sed -i "s|enabled=1|enabled=0|g" /etc/yum/pluginconf.d/fastestmirror.conf
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
curl -o /etc/yum.repos.d/CentOS-Base.repo https://www.xmpan.com/Centos-6-Vault-Aliyun.repo
然后重新执行
yum install make cmake gcc gcc-c++ perl
注意:如果是离线安装,请执行以下操作:
安装zlib库安装
tar -zxvf zlib-1.2.5.tar.gz
cd zlib-1.2.5
./configure
make
makeinstall
安装pcre库安装
tar –zxvf pcre-8.21.tar.gz,解压目录为:pcre-8.21
cd pcre-8.21
./configure或./config
make
make install
2、安装libfastcommon(在2台机器分别操作)
准备一个目录,将需要的安装包放到该目录下,我习惯放在 /home/soft
先解压 libfastcommon
tar -zxvf libfastcommon-1.0.38.tar.gz
然后进入 libcommon
cd libfastcommon-1.0.38
编译
./make.sh
安装
./make.sh install
3、安装FastDFS(2台机器都要执行)
先解压 fastdfs
tar -zxvf fastdfs-5.11.tar.gz
进入fastdfs
cd fastdfs-5.11
编译
./make.sh
安装
./make.sh install
将 tracker、storage、client 的配置文件后缀名去掉
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf #tracker节点
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf #storage节点
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf #客户端文件,测试用
把 http.conf 和 mime.types 拷贝到/etc/fdfs目录下
cp /home/soft/fastdfs-5.11/conf/http.conf /etc/fdfs/ #供nginx访问使用
cp /home/soft/fastdfs-5.11/conf/mime.types /etc/fdfs/ #供nginx访问使用
tracker server配置:
vi /etc/fdfs/tracker.conf
需要修改的内容:
base_path=/home/fastdfs/tracker # 存储日志和数据的根目录
启动服务前先手动创建刚才配置文件指定的目录
mkdir -p /home/fastdfs/tracker
启动 tracker 服务
fdfs_trackerd /etc/fdfs/tracker.conf
查看 tracker 服务
ps -ef | grep fdfs
storage server配置:
vim /etc/fdfs/storage.conf
需要修改的内容如下
port=23000 # storage服务端口(默认23000,一般不修改)
base_path=/home/fastdfs/storage # 数据和日志文件存储根目录
store_path0=/data/fastdfs/files # 第一个存储目录
tracker_server=192.168.126.134:22122 # tracker服务器IP和端口
tracker_server=192.168.126.135:22122 # tracker服务器IP和端口
http.server_port=8888 # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)
服务启动前先收到创建storage配置文件中指定得目录,且需要关闭防火墙
mkdir -p /home/fastdfs/storage
mkdir -p /home/fastdfs/files
service iptables stop #关闭防火墙
启动storage服务
fdfs_storaged /etc/fdfs/storage.conf
查看服务:
netstat - tulnp
如果服务没起来,去目录 /home/fastdfs/storage/logs 下查看日志,一般都是忘了创建目录或者防火墙没关:
查看集群状态(状态为ACTIVE):
fdfs_monitor /etc/fdfs/storage.conf list
client 配置修改:
vim /etc/fdfs/client.conf
需要修改的内容如下
base_path=/home/fastdfs/client
tracker_server=192.168.126.134:22122 # tracker服务器IP和端口
tracker_server=192.168.126.135:22122 # tracker服务器IP和端口
创建 client 配置文件中指定的目录:
mkdir -p /home/fastdfs/client
至此,fastdfs集群已完成,我们来上传个图片测试一下...(注意:这里要在图片所在目录下才能上传成功,否则会报错!)
fdfs_test /etc/fdfs/client.conf upload dog.jfif
去服务器上打开存储目录看一下(同一个组的文件会自动同步):
可以看到,图片已经上传成功,但是我们想通过浏览器打开访问图片,因此接下来继续安装nginx(2台机器都要执行):
4、安装nginx和fastdfs-nginx-module(在2台机器上分别操作)
先解压 nginx-module
cd /home/soft
tar -zxvf fastdfs-nginx-module-1.20.tar.gz
编辑 nginx-module 的 config 文件:
cd /home/soft/fastdfs-nginx-module-1.20/src
修改以下内容:
ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
配置nginx:
cd /home/soft/nginx-1.15.2
./configure --prefix=/usr/local/nginx_fdfs --add-module=/home/soft/fastdfs-nginx-module-1.20/src
编译
make
安装
make install
看到/usr/local下有nginx_fdfs表示安装成功!
切换到 /home/soft/fastdfs-nginx-module-1.20/src 修改文件 mod_fastdfs.conf
cd /home/soft/fastdfs-nginx-module-1.20/src
vi mod_fastdfs.conf
修改以下内容:
base_path=/home/fastdfs/files
url_have_group_name = true
tracker_server=192.168.126.134:22122
tracker_server=192.168.126.135:22122
store_path0=/home/fastdfs/files
将mod_fastdfs.conf 复制到/etc/fdfs下:
cp mod_fastdfs.conf /etc/fdfs/
修改文件nginx.conf配置:
cd /usr/local/nginx_fdfs/conf
vi nginx.conf
增加以下内容:
location ~ /group[0-9]/M0[0-9] {
ngx_fastdfs_module;
}
修改访问 root 权限:
cd /usr/local/nginx_fdfs/conf
vi nginx.config 需改为root访问
#user nobody;
user root;
重要:记得修改nginx 监听端口(默认是80),避免与tomcat冲突,我这里修改为 81
listen 81;
现在可以启动 nginx:
/usr/local/nginx_fdfs/sbin/nginx -c /usr/local/nginx_fdfs/conf/nginx.conf -t
/usr/local/nginx_fdfs/sbin/nginx -c /usr/local/nginx_fdfs/conf/nginx.conf
查看nginx(启动成功会有2个进程,没有worker 进程就是启动失败,具体去看日志 /usr/local/nginx_fdfs/logs,一般也是路径不存在报错):
ps -ef | grep nginx
浏览器访问测试: