美文网首页
搭建fastDFS+Nginx(单机)

搭建fastDFS+Nginx(单机)

作者: ce5154e79490 | 来源:发表于2019-01-30 19:58 被阅读0次

0. 前言

参考:https://blog.csdn.net/qq3401247010/article/details/78279330
操作环境:CentOS7 X64
所有软件包下载到同一目录 如/softpackages

1. 域名映射(可选)

  vim /etc/hosts
  添加如下一行,这是需要映射的ip
  192.168.08.17 utry.file.com

2. 安装c++环境

  yum install gcc-c++

3. 下载安装libfastcommon

libfastcommon是从FastDFS和FastDHT中提取出来的C函数库,基础环境

3.1 下载

 wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz

3.2 解压安装

 tar -zxvf V1.0.7.tar.gz
 cd libfastcommon-1.0.7
 ./make.sh
 ./make.sh install

3.3 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 

4. 下载安装FastDFS

wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz
tar -zxvf V5.05.tar.gz
cd fastdfs-5.05
./make.sh
./make.sh install

FastDFS 服务脚本设置的 bin 目录是 /usr/local/bin, 但实际命令安装在 /usr/bin/ 下,使用软连接方式

ln -s /usr/bin/fdfs_trackerd   /usr/local/bin
ln -s /usr/bin/fdfs_storaged   /usr/local/bin
ln -s /usr/bin/stop.sh         /usr/local/bin
ln -s /usr/bin/restart.sh      /usr/local/bin

5. 配置FastDFS跟踪器(tracker)

cd /etc/fdfs
cp tracker.conf.sample tracker.conf
vim tracker.conf

修改一下内容,其他默认

base_path=/fastdfs/tracker
http.server_port=8080

创建tracker基础数据目录,及base_path对应的目录

mkdir -p /fastdfs/tracker

防火墙中打开跟踪端口(默认22122)

firewall-cmd --zone=public --add-port=22122/tcp --permanent
firewall-cmd --reload

启动tracker

/etc/init.d/fdfs_trackerd start
如果创建了软连接,可以用以下方法启动
service fdfs_trackerd start

查看FastDFS Tracker 是否已经启动成功,22122端口正在被监听,则算是安装Tracker服务成功

netstat -unltp | grep fdfs
image.png
关闭tracker命令
service fdfs_trackerd stop

设置tracker开机启动

chkconfig fdfs_trackerd on

6. 配置FastDFS存储(storage)

进入 /etc/fdfs 目录,复制 FastDFS 存储器样例配置文件 storage.conf.sample,并重命名为 storage.conf

cd /etc/fdfs
cp storage.conf.sample storage.conf
vim storage.conf

修改以下配置,其他默认即可

base_path=/fastdfs/storage
# 如果不配置 store_path0,那它就和 base_path 对应的路径一样
store_path0=/fastdfs/file
tracker_server=192.168.08.17:22122
http.server_port=8080

创建storage基础数据目录,对应base_path, store_path0目录

mkdir -p /fastdfs/storage
mkdir -p /fastdfs/file

防火墙中打开存储器端口(默认23000)

firewall-cmd --zone=public --add-port=23000/tcp --permanent
firewall-cmd --reload

启动 Storage
启动Storage前确保Tracker是启动的。初次启动成功,会在 /fastdfs/storage 目录下创建 data、 logs 两个目录。

/etc/init.d/fdfs_storaged start
如果创建了软连接,可以用以下方法启动
service fdfs_storaged start

查看FastDFS Storage是否已经启动成功,23000端口正在被监听,则算是安装Storage服务成功

netstat -unltp | grep fdfs

查看Storage和Tracker是否正在通信

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
image.png

设置Storage开机启动

chkconfig fdfs_storage on

同 Tracker,Storage 启动成功后,在base_path 下创建了data、logs目录,记录着 Storage Server 的信息

7. 安装Nginx

安装Nginx作为服务器以支持Http方式访问文件。同时,后面安装FastDFS的Nginx模块也需要Nginx环境

yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
wget -c https://nginx.org/download/nginx-1.12.1.tar.gz
tar -zxvf nginx-1.12.1.tar.gz
cd nginx-1.12.1
./configure #使用默认配置
make
make install

nginx相关命令

/usr/local/nginx/sbin/./nginx #启动
/usr/local/nginx/sbin/./nginx -s stop #快速停止
/usr/local/nginx/sbin/./nginx -s reload #配置文件修改重装载
/usr/local/nginx/sbin/./nginx -s quit #正常停止
/usr/local/nginx/sbin/./nginx -s -V #查看版本

8. FastDFS配置Nginx模块

FastDFS 通过 Tracker 服务器,将文件放在 Storage 服务器存储, 但是同组存储服务器之间需要进行文件复制, 有同步延迟的问题。

假设 Tracker 服务器将文件上传到了 192.168.51.128,上传成功后文件 ID已经返回给客户端。

此时 FastDFS 存储集群机制会将这个文件同步到同组存储 192.168.51.129,在文件还没有复制完成的情况下,客户端如果用这个文件 ID 在 192.168.51.129 上取文件,就会出现文件无法访问的错误。

而 fastdfs-nginx-module 可以重定向文件链接到源服务器取文件,避免客户端由于复制延迟导致的文件无法访问错误。

wget https://github.com/happyfish100/fastdfs-nginx-module/archive/5e5f3566bbfa57418b5506aaefbe107a42c9fcb1.zip

解压

unzip 5e5f3566bbfa57418b5506aaefbe107a42c9fcb1.zip

重命名

mv fastdfs-nginx-module-5e5f3566bbfa57418b5506aaefbe107a42c9fcb1  fastdfs-nginx-module-master

在Nginx中添加模块

/usr/local/nginx/sbin/nginx -s stop #先停掉Nginx服务
cd /softpackage/nginx-1.12.1/ #进入压缩包目录
./configure --add-module=../fastdfs-nginx-module-master/src #添加模块
make && make install #重新编译、安装
/usr/local/nginx/sbin/nginx -V #有下面这个表示添加模块成功
image.png

复制 fastdfs-nginx-module 源码中的配置文件到/etc/fdfs 目录, 并修改

cd /softpackages/fastdfs-nginx-module-master/src
cp mod_fastdfs.conf /etc/fdfs/

修改如下配置,其他默认

connect_timeout=10
tracker_server=192.168.08.17:22122
url_have_group_name = true
store_path0=/fastdfs/file #必须和storage.conf中的一致

复制 FastDFS 的部分配置文件到/etc/fdfs 目录

cd /softpackages/fastdfs-5.05/conf/
cp anti-steal.jpg http.conf mime.types /etc/fdfs/

配置nginx,修改nginx.conf

vim /usr/local/nginx/conf/nginx.conf
image.png

注意:
  listen 8080 端口值是要与 /etc/fdfs/storage.conf 中的 http.server_port=8080 (前面改成8080了)相对应。如果改成其它端口,则需要统一,同时在防火墙中打开该端口。
启动Nginx:

/usr/local/nginx/sbin/nginx

在地址栏访问:
能下载文件就算安装成功。注意和第三点中直接使用nginx路由访问不同的是,这里配置 fastdfs-nginx-module 模块,可以重定向文件链接到源服务器取文件。

相关文章

  • 搭建fastDFS+Nginx(单机)

    0. 前言 参考:https://blog.csdn.net/qq3401247010/article/detai...

  • Zookeeper 高可用搭建

    1 单机搭建zk 2 zk可视化 3 spring cloud单机整合zk 4 zk集群搭建 5 spring c...

  • HBase 环境搭建

    HBase单机环境的搭建 这里先进行单机版环境搭建, 主要目的是熟悉HBase,实操角度对HBase有简单认识,后...

  • RabbitMQ入门(二)

    单机搭建集群 自己学习测试,受限于机器原因,有时只能自己单机尝试下集群操作,接下来带你学会单机部署集群操作。 插件...

  • VMware 搭建 Tableau Server for Lin

    举个栗子!Tableau 技巧(67):VMware 搭建 Tableau Server for Linux 单机...

  • Spark课程大纲

    Spark环境搭建 Centos Spark单机版伪分布式模式Spark单机版intelij开发(maven)Sp...

  • spark课程大纲

    Spark环境搭建 Centos Spark单机版伪分布式模式Spark单机版intelij开发(maven)Sp...

  • spark课程大纲

    Spark环境搭建 Centos Spark单机版伪分布式模式Spark单机版intelij开发(maven)Sp...

  • spark课程大纲

    Spark环境搭建 Centos Spark单机版伪分布式模式Spark单机版intelij开发(maven)Sp...

  • spark学习课程大纲

    Spark环境搭建 Centos Spark单机版伪分布式模式Spark单机版intelij开发(maven)Sp...

网友评论

      本文标题:搭建fastDFS+Nginx(单机)

      本文链接:https://www.haomeiwen.com/subject/ljtcsqtx.html