FastDFS分布式文件系统的安装与使用
跟踪服务器:192.168.43.101(tracker)
存储服务器:192.168.43.102 (storage)
安装依赖包 (所有机器)
yum -y install libevent libevent-devel perl make gcc zlib zlib-devel pcre pcre-devel gcc-c++ openssl-devel
安装libfastcommon(所有机器)
tar -zxvf libfastcommon-1.0.39.tar.gz
mv libfastcommon-1.0.39 /usr/local/bin/
cd /usr/local/bin/libfastcommon-1.0.39/
//开始构建
./make.sh
./make.sh install
可以看到libfastcommon.so默认安装到了/usr/lib64/libfastcommon.so
但是FastDFS主程序设置的lib目录是/usr/local/lib
所以需要创建软链接.
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
安装fastDFS (所有机器)
tar -zxvf fastdfs.tar.gz
mv fastdfs-5.11 /usr/local/bin/
// 进入fastdfs主文件路径下
cd /usr/local/bin/fastdfs-5.11/
./make.sh
./make.sh install
// 进入fdfs配置文件路径上
cd /etc/fdfs/
// 复制三个配置信息
cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf
启动fastDFS tracker (192.168.43.101)
//创建目录,用于记录 tracker日志、storage server等信息。
mkdir -m 755 -p /opt/fastdfs
// 先修改服务配置
vim /etc/fdfs/tracker.conf
//打开后重点关注下面4个配置:
disabled=false #默认开启
port=22122 #默认端口号
base_path=/opt/fastdfs #我刚刚创建的目录
http.server_port=8080 #默认端口是8080
//设置开机启动
systemctl enable fdfs_trackerd
//启动
systemctl start fdfs_trackerd
// 查看监听:
netstat -unltp|grep fdfs
//开启端口
firewall-cmd --zone=public --add-port=22122/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent
//重启防火墙
firewall-cmd --reload
启动fastDFS storage (192.168.43.102)
//创建目录,用于存储文件。
mkdir -m 777 -p /opt/fastdfs
mkdir -m 777 -p /opt/fastdfs1
//修改storage.conf
vim /etc/fdfs/storage.conf
disabled=false
group_name=group1 #组名,根据实际情况修改
port=23000 #设置storage的端口号,默认是23000,同一个组的storage端口号必须一致
base_path=/opt/fastdfs #设置storage数据文件和日志目录
store_path_count=1 #存储路径个数,需要和store_path个数匹配
store_path0=/opt/fastdfs1 #实际文件存储路径
tracker_server=192.168.43.101 #tracker的ip地址
http.server_port=8888 #设置 http 端口号
// 设置开机启动
systemctl enable fdfs_storaged
// 开启fdfs storage文件
systemctl start fdfs_storaged
// 查看监听:
netstat -unltp|grep fdfs
// 查看storage运行情况
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
//开启端口
firewall-cmd --zone=public --add-port=23000/tcp --permanent
firewall-cmd --zone=public --add-port=8888/tcp --permanent
//重启防火墙
firewall-cmd --reload
在storage上安装nginx
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
tar -zxvf nginx-1.10.1.tar.gz
mv fastdfs-nginx-module /usr/local/bin/
mv nginx-1.10.1 /usr/local/bin/
// 修改模块信息
vim /usr/local/bin/fastdfs-nginx-module/src/config
//覆盖上去
ngx_addon_name=ngx_http_fastdfs_module
HTTP_MODULES="$HTTP_MODULES ngx_http_fastdfs_module"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_fastdfs_module.c"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
CORE_LIBS="$CORE_LIBS -L/usr/lib -lfastcommon -lfdfsclient"
CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'"
//创建配置信息
./configure --prefix=/usr/local/nginx --add-module=/usr/local/bin/fastdfs-nginx-module/src
// 复制配置信息
cp -rf /usr/include/fast* /usr/local/include/
//构建
make
make install
// 复制fdfs文件到/etc/fdfs文件夹下
cp /usr/local/bin/fastdfs-5.11/conf/http.conf /etc/fdfs/
cp /usr/local/bin/fastdfs-5.11/conf/mime.types /etc/fdfs/
cp /usr/local/bin/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
//配置mod_fastdfs文件
vim /etc/fdfs/mod_fastdfs.conf
//修改当中的配置信息
base_path=/opt/fastdfs
tracker_server=192.168.43.101:22122
url_have_group_name=true #url中包含group名称
store_path0=/home/fastdfs1 #指定文件存储路径(上面配置的store路径)
修改nginx配置信息
vim /usr/local/nginx/conf/nginx.conf
//删除原来的server
//改为以下配置信息
server {
listen 8888;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
location ~ /group[0-9]/M00 {
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
// 创建nginx开机启动
vim /lib/systemd/system/nginx.service
加入以下内容
[Unit]
Description=nginx - high performance web server
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 stop
[Install]
WantedBy=multi-user.target
//保存,重新加载 systemd
systemctl daemon-reload
//开机启动nginx
systemctl enable nginx.service
systemctl start nginx
文件上传测试 (tracker 192.168.43.101)
// 设置客户端
vim /etc/fdfs/client.conf
base_path=/opt/fastdfs #tracker服务器文件路径
tracker_server=192.168.43.101:22122 #tracker服务器IP地址和端口号
http.tracker_server_port=8080 # tracker 服务器的 http端口号,必须和tracker的设置对应起来
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /tmp/test.png
返回id号:group1/M00/00/00/wKgrZlxBoh6AQxslAAdWJE-w88g505.png
(能返回以上文件ID,说明文件上传成功)
访问:
http://192.168.43.102:8888/group1/M00/00/00/wKgrZlxBoh6AQxslAAdWJE-w88g505.png