ubuntu16.04 FastDFS+nginx 环境搭建

ubuntu16.04 FastDFS 环境搭建

机器:root,ubuntu16.04

gcc,g++编译器

apt-get install gcc 
apt-get install g++ 
apt-get install build-essential 
apt-get install libtool

Nginx安装和配置

准备工作

PCRE库安装
wget https://sourceforge.net/projects/pcre/files/pcre/8.44/pcre-8. 44.tar.gz 
tar -zxvf pcre-8.44.tar.gz 
cd pcre-8.44/ 4 ./configure 
make ; make install
zlib安装
 wget https://nchc.dl.sourceforge.net/project/libpng/zlib/1.2.11/zl ib-1.2.11.tar.gz 
 tar -zxvf zlib-1.2.11.tar.gz 
 cd zlib-1.2.11/ 
 ./configure 
 make ; make install
OpenSSL开发库安装
wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz 
tar -zxvf openssl-1.1.1g.tar.gz
cd openssl-1.1.1g/ 
./config 
make 
make install
Nginx 安装与启动

编译安装Nginx

wget http://nginx.org/download/nginx-1.16.1.tar.gz 
tar -zxvf nginx-1.16.1.tar.gz 
nginx-1.16.1/ 
./configure 
make 
make install

启动与关闭

默认情况下,Nginx被安装在⽬录/usr/local/nginx中

cd usr/local/nginx 
ls 
显示:conf html logs sbin

其中,其中Nginx的配置⽂件存放于conf/nginx.conf,bin⽂件是位于sbin⽬录下的nginx⽂件。

  • 默认⽅式启动Nginx服务器

    /usr/local/nginx/sbin/nginx (需要sudo权限)

这时,会⾃动读取配置⽂件:/usr/local/nginx/conf/nginx.conf

  • 查看nginx进程

    ps -ef|grep nginx

打开浏览器访问此自己的机器的IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运⾏成功:

  • 指定配置⽂件启动服务器
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
  • 测试配置信息
/usr/local/nginx/sbin/nginx -t

FastDFS 安装与配置

终于到FastDFS的安装配置啦。

版本:

  • libfastcommon 1.0.50

  • fastdfs 6.0.7

安装 libfastcommon

libfastcommon 的git下载地址:https://github.com/happyfish100/libfastcommon

安装FastDFS前,需要先安装libfastcommon ~

git clone https://github.com/happyfish100/libfastcommon.git 
cd libfastcommon 
git checkout V1.0.50 
./make.sh 
./make.sh install
安装FastDFS
git clone https://github.com/happyfish100/fastdfs.git 
cd fastdfs 
git checkout V6.07 
./make.sh && ./make.sh install

FastDFS是啥,用来干啥的,功能原理是啥,前一篇都有说到【https://blog.csdn.net/qq_43058348/article/details/120486382】

配置 Tracker
 # 创建 Tracker 的存储⽇志和数据的根⽬录 
 mkdir -p /home/fastdfs/tracker 
 cd /etc/fdfs 
 cp tracker.conf.sample tracker.conf 
 # 配置 tracker.conf 
 vim tracker.conf

在这⾥,tracker.conf 只是修改⼀下 Tracker 存储⽇志和数据的路径

# 启⽤配置⽂件(默认为 false,表示启⽤配置⽂件)
disabled=false 
# Tracker 服务端⼝(默认为 22122) 
port=22122 
# 存储⽇志和数据的根⽬录 
base_path=/home/fastdfs/tracker

主要修改base_path路径。

配置storage
# 创建 Storage 的存储⽇志和数据的根⽬录
mkdir -p /home/fastdfs/storage 
cd /etc/fdfs 
cp storage.conf.sample storage.conf 
# 配置 storage.conf 
vim storage.conf

在这⾥,storage.conf 只是修改⼀下 storage 存储⽇志和数据的路径

# 启⽤配置⽂件(默认为 false,表示启⽤配置⽂件) 
disabled=false 
# Storage 服务端⼝(默认为 23000)
port=23000 
# 数据和⽇志⽂件存储根⽬录 
base_path=/home/fastdfs/storage 
# 存储路径,访问时路径为 M00 
# store_path1 则为 M01,以此递增到 M99(如果配置了多个存储⽬录的话,这⾥只 指定 1 个) 
store_path0=/home/fastdfs/storage 
# Tracker 服务器 IP 地址和端⼝,单机搭建时也不要写 127.0.0.1 
# tracker_server 可以多次出现,如果有多个,则配置多个
tracker_server=120.27.131.197:22122 
# 设置 HTTP 访问⽂件的端⼝。这个配置已经不⽤配置了,配置了也没什么⽤ 
# 这也是为何 Storage 服务器需要 Nginx 来提供 HTTP 访问的原因 
http.server_port=8888

主要修改:base_path、store_path0、tracker_server

启动Tracker 和 Storage
#启动 Tracker 服务
# 其它操作则把 start 改为 stop、restart、reload、status 即可。Storage 服务相同 
/etc/init.d/fdfs_trackerd start 
# 启动 Storage 服务 
/etc/init.d/fdfs_storaged start 
# 可以通过 fdfs_monitor 查看集群的情况 
# 查看 Storage 是否已经注册到 Tracker 服务器中 
# 当查看到 ip_addr = 120.27.131.197 (localhost.localdomain) ACTIV E 
# ACTIVE 表示成功 
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

可以去查看/etc/init.d/fdfs_trackerd⽂件, fdfs_trackerd的实际执⾏程序 为:/usr/bin/fdfs_trackerd,配置⽂件为:/etc/fdfs/tracker.conf。

这样后续我们也可以单台机器通过修改端⼝的⽅式去启动多个tracker、storage。

测试上传文件
# 修改 Tracker 服务器客户端配置⽂件 
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf 
vim /etc/fdfs/client.conf
# 存储⽇志⽂件的基本路径 
base_path=/home/fastdfs/tracker 
# Tracker 服务器 IP 地址与端⼝号 
tracker_server=120.27.131.197:22122

主要修改base_path和tracker_server

拷⻉⼀个⽂件到 root ⽬录下

# 存储到 FastDFS 服务器中 
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /root/test.txt

当返回⽂件 ID 号,如 group1/M00/00/00/eBuDxWCb2qmAQ89yAAAAKeR1iIo162.txt 则表示上传成功

如果报错:tracker_query_storage fail, error no: 2, error info: No such file or directory,⼀般都是

因为路径没有设置对。可以查看日志

tail -f /home/fastdfs/storage/logs/storaged.log
下载文件测试

查看刚刚上传的文件路径为/home/fastdfs/storage/data/00/00

下载:

fdfs_download_file /etc/fdf s/client.conf group1/M00/00/00/eBuDxWCb2qmAQ89yAAAAKeR1iIo162.txt
root# ls 

删除:

fdfs_delete_file /etc/fdfs/ client.conf group1/M00/00/00/eBuDxWCb2qmAQ89yAAAAKeR1iIo162.txt

可以进去/home/fastdfs/storage/data/00/00路径查看刚才的⽂件是否被删除。

接下来我们继续安装Nginx

  • Storage 安装 Nginx,为了提供 http 的访问和下载服务,同时解决 group 中 Storage 服务器的同步

    延迟问题

  • Tracker 安装 Nginx,主要是为了提供 http 访问的反向代理、负载均衡以及缓存服务

fastdfs-nginx-module安装

下载fastdfs-nginx-module

 git clone https://github.com/happyfish100/fastdfs-nginx-module.git
 cd fastdfs-nginx-module 
 git checkout V1.22

cd fastdfs-nginx-module/ 会发现⾥⾯有个INSTALL 和 src⽬录,这个不需要make⽽是需要重新编译 ⼀下storage的Nginx模块。

安装和编译Nginx 并添加FastDFS模块
#进⼊到nginx源码⽬录 
cd nginx-1.16.1/ (本⼈路径:/home/user/work/nginx-1.16.1) 
./configure --add-module=/home/user/work/fastdfs-nginx-module/src

其中/home/user/work/fastdfs-nginx-module/src是刚才下载的的fastdfs_nginx_module模 块的绝对路径,就是在编译Nginx时候,连同这个模块⼀起编译。

给 nginx ⽬录下的 objs/Makefile ⽂件中增加头⽂件⽬录

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ```shell

vim objs/Makefile
```

添加

ALL_INCS = -I src/core \ 
-I /usr/include/fastdfs \     #添加1
-I /usr/include/fastcommon \   #添加2
-I src/event \ 
-I src/event/modules \

重新编译及安装nginx

make ; make install
fastdfs-nginx-module配置

fastdfs-nginx-module配置⽂件

切换到fastdfs-nginx-module/src路径

将fastdfs-nginx-module/src/mod_fastdfs.conf 拷⻉到/etc/fdfs/下:

cp mod_fastdfs.conf /etc/fdfs/

fastdfs-nginx-module 和 FastDFS 配置⽂件修改# 复制 FastDFS 的部分配置⽂件到 /etc/fdfs

cd /home/usr/fastdfs 进入fastdfs目录

cp conf/http.conf /etc/fdfs/

cp conf/mime.types /etc/fdfs/

修改 vim /etc/fdfs/mod_fastdfs.conf

# Tracker 服务器IP和端⼝修改 
tracker_server=120.27.131.197:22122 
# url 中是否包含 group 名称,改为 true,包含 group
url_have_group_name = true
# 配置 Storage 信息,修改 store_path0 的信息 
store_path0=/home/fastdfs/storage
 # 其它的⼀般默认即可,例如 
base_path=/tmp 9 group_name=group1 
storage_server_port=23000 
store_path_count=1

主要修改tracker_server、url_have_group_name、store_path0。

配置nginx

vim /usr/local/nginx/conf/nginx.conf

配置为⽀持 group0-group9,以及 M00-M99,以便于以后扩容

location ~/group([0-9])/M([0-9])([0-9]) { 
    ngx_fastdfs_module; 
}

在这里插入图片描述

配置完fastdfs-nginx-module后需要重启nginx

/usr/local/nginx/sbin/nginx -s reload

如果nginx日志文件里出现错误,先停止nginx再启动nginx

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

测试

服务器中测试上传。

fdfs_upload_file /etc/fdfs/client.conf 自己随便找个文件.txt

拿到存储位置:group1/M00/00/00/eBuDxWCeIFCAEFUrAAAAKTIQHvk462.txt

如果是group1开头,查看group1中storage⽂件是否存在

浏览器输⼊:

http://ip:80/group1/M00/00/00/eBuDxWCeIFCAEFUrAAAAKTIQHvk462.txt

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值