软件下载

# 已经事先把所需软件下载好并上传到/usr/local/src目录了
https://github.com/happyfish100/libfastcommon/archive/V1.0.43.tar.gz
https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.22.tar.gz
https://github.com/happyfish100/fastdfs/archive/V6.06.tar.gz
https://github.com/happyfish100/fastdfs-client-java/archive/V1.28.tar.gz
https://openresty.org/download/openresty-1.15.8.3.tar.gz

文件下载地址:https://files.cnblogs.com/files/sanduzxcvbnm/FastDFS软件包.7z

基础环境设置

安装依赖组件

yum -y install  gcc gcc-c++ libevent
yum -y groupinstall 'Development Tools'

<escape><!-- more --></escape>

安装libfastcommon

cd /usr/local/src
tar -zxvf libfastcommon-1.0.43.tar.gz
cd libfastcommon-1.0.43
./make.sh
./make.sh install # 检查文件是否存在
[root@bogon libfastcommon-1.0.43]# ll /usr/lib64 | grep "libfastcommon.so"
-rwxr-xr-x 1 root root 1035264 Apr 2 10:07 libfastcommon.so
[root@bogon libfastcommon-1.0.43]# ll /usr/lib | grep "libfastcommon.so"
lrwxrwxrwx 1 root root 27 Apr 2 10:07 libfastcommon.so -> /usr/lib64/libfastcommon.so

安装fastdfs

cd /usr/local/src
tar -zxvf fastdfs-6.06.tar.gz
cd fastdfs-6.06
./make.sh
./make.sh install # 安装成功后将解压目录下的conf下的俩文件拷贝到/etc/fdfs/下
cd conf
cp http.conf mime.types /etc/fdfs/
cd /etc/fdfs/
[root@bogon fdfs]# ll
total 68
-rw-r--r-- 1 root root 1909 Apr 2 10:15 client.conf.sample
-rw-r--r-- 1 root root 965 Apr 2 10:16 http.conf
-rw-r--r-- 1 root root 31172 Apr 2 10:16 mime.types
-rw-r--r-- 1 root root 10246 Apr 2 10:15 storage.conf.sample
-rw-r--r-- 1 root root 620 Apr 2 10:15 storage_ids.conf.sample
-rw-r--r-- 1 root root 9138 Apr 2 10:15 tracker.conf.sample

fdfs_trackerd配置并启动

cd /etc/fdfs/
cp tracker.conf.sample tracker.conf
mkdir -p /opt/{fdfs_tracker,fdfs_storage,fdfs_storage_data}
vim tracker.conf
base_path = /opt/fdfs_tracker # 启动fdfs_trackerd
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
# 查看端口号,验证启动情况
[root@bogon fdfs]# ps -ef | grep fdfs
root 2119 1 0 10:22 ? 00:00:00 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
[root@bogon fdfs]# ss -tulnp | grep 22122
tcp LISTEN 0 128 *:22122 *:* users:(("fdfs_trackerd",pid=2119,fd=5)) # 命令行选项
Usage: /usr/bin/fdfs_trackerd <config_file> [start|stop|restart] # 注意:在/opt/fdfs_data目录下生成两个目录,一个是数据,一个是日志.
# 设置开机自启动
echo "/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart" | tee -a /etc/rc.d/rc.local

fdfs_storaged配置并启动

cd /etc/fdfs/
cp storage.conf.sample storage.conf
vim storage.conf
base_path = /opt/fdfs_storage # 注意,这个目录最好有大于50G的磁盘空间
store_path0 = /opt/fdfs_storage_data # 若配置这个参数,则该目录为实际保存文件的路径
tracker_server = 192.168.75.5:22122
# 启动fdfs_storaged
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
[root@bogon fdfs]# ps -ef | grep "fdfs_storaged"
root 2194 1 7 10:36 ? 00:00:01 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
[root@bogon fdfs]# ss -tulnp | grep "fdfs"
tcp LISTEN 0 128 *:23000 *:* users:(("fdfs_storaged",pid=2194,fd=5))
tcp LISTEN 0 128 *:22122 *:* users:(("fdfs_trackerd",pid=2119,fd=5)) # 命令行选项
Usage: /usr/bin/fdfs_trackerd <config_file> [start|stop|restart]
# 设置开机自启动
echo "/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart" | tee -a /etc/rc.d/rc.local

校验整合

要确定一下,storage是否注册到了tracker中去

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

成功后可以看到:ip_addr = 192.168.75.5 ACTIVE

使用FastDFS自带工具测试

cd /etc/fdfs/
cp client.conf.sample client.conf
vim client.conf
base_path = /opt/fdfs_tracker #tracker服务器文件路径
tracker_server = 192.168.75.5:22122 #tracker服务器IP地址和端口号
http.tracker_server_port = 8080 # tracker服务器的http端口号,必须和tracker的设置对应起来

上传一张图片1.jpg到Centos服务器上的 /tmp 目录下,进行测试,命令如下:

/usr/bin/fdfs_test /etc/fdfs/client.conf upload /tmp/1.jpg
This is FastDFS client test program v6.06 Copyright (C) 2008, Happy Fish / YuQing FastDFS may be copied only under the terms of the GNU General
Public License V3, which may be found in the FastDFS source kit.
Please visit the FastDFS Home Page http://www.fastken.com/
for more detail. [2020-04-02 10:47:57] DEBUG - base_path=/opt/fdfs_tracker, connect_timeout=5, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0 tracker_query_storage_store_list_without_group:
server 1. group_name=, ip_addr=192.168.75.5, port=23000 group_name=group1, ip_addr=192.168.75.5, port=23000
storage_upload_by_filename
group_name=group1, remote_filename=M00/00/00/wKhLBV6FUl6AA0eTACSnIi51C7k037.jpg
source ip address: 192.168.75.5
file timestamp=2020-04-02 10:47:58
file size=2402082
file crc32=779422649
example file url: http://192.168.75.5:8080/group1/M00/00/00/wKhLBV6FUl6AA0eTACSnIi51C7k037.jpg
storage_upload_slave_by_filename
group_name=group1, remote_filename=M00/00/00/wKhLBV6FUl6AA0eTACSnIi51C7k037_big.jpg
source ip address: 192.168.75.5
file timestamp=2020-04-02 10:47:58
file size=2402082
file crc32=779422649
example file url: http://192.168.75.5:8080/group1/M00/00/00/wKhLBV6FUl6AA0eTACSnIi51C7k037_big.jpg

以上图中的文件地址:http://192.168.75.5:8080/group1/M00/00/00/wKhLBV6FUl6AA0eTACSnIi51C7k037.jpg对应storage服务器上的/opt/fdfs_storage_data/data/00/00/wKhLBV6FUl6AA0eTACSnIi51C7k037.jpg文件;

注意图片路径中的8080端口,这个是tracker的端口,

但是查看该目录,会有四个图片文件:

[root@bogon 00]# pwd
/opt/fdfs_storage_data/data/00/00
[root@bogon 00]# ll
total 4704
-rw-r--r-- 1 root root 2402082 Apr 2 10:47 wKhLBV6FUl6AA0eTACSnIi51C7k037_big.jpg
-rw-r--r-- 1 root root 49 Apr 2 10:47 wKhLBV6FUl6AA0eTACSnIi51C7k037_big.jpg-m
-rw-r--r-- 1 root root 2402082 Apr 2 10:47 wKhLBV6FUl6AA0eTACSnIi51C7k037.jpg
-rw-r--r-- 1 root root 49 Apr 2 10:47 wKhLBV6FUl6AA0eTACSnIi51C7k037.jpg-m

FastDFS和nginx结合使用

在tracker上安装 nginx

在每个tracker上安装nginx的主要目的是做负载均衡及实现高可用。如果只有一台tracker服务器可以不配置nginx.

一个tracker对应多个storage,通过nginx对storage负载均衡;

在storage上安装nginx(openresty)

cd /usr/local/src/
tar -zxvf fastdfs-nginx-module-1.22.tar.gz
cd fastdfs-nginx-module-1.22/src
cp mod_fastdfs.conf /etc/fdfs/
vim /etc/fdfs/mod_fastdfs.conf
base_path=/opt/fdfs_storage
tracker_server=192.168.75.5:22122
url_have_group_name = true #url中包含group名称
store_path0=/opt/fdfs_storage_data #与storage.conf中的路径保持一致
yum -y install pcre pcre-devel openssl openssl-devel
cd /usr/local/src
tar -zxvf openresty-1.15.8.3.tar.gz
cd openresty-1.15.8.3
./configure \
--with-luajit \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_gzip_static_module \
--add-module=/usr/local/src/fastdfs-nginx-module-1.22/src
gmake
gmake install # 启动
vim /usr/local/openresty/nginx/conf/nginx.conf
error_log logs/error.log;
pid logs/nginx.pid;
server{
server_name 192.168.75.5;
}
/usr/local/openresty/nginx/sbin/nginx -c /usr/local/openresty/nginx/conf/nginx.conf
# 浏览器访问,出现openresty欢迎页面 # 设置nginx开机启动
echo "/usr/local/openresty/nginx/sbin/nginx -c /usr/local/openresty/nginx/conf/nginx.conf" | tee -a /etc/rc.d/rc.local vim /usr/local/openresty/nginx/conf/nginx.conf
server{
location /group1/M00/ {
root /opt/fdfs_storage/data;
ngx_fastdfs_module;
}
} /usr/local/openresty/nginx/sbin/nginx -s reload # 参考上面测试的那一步图片url地址:http://192.168.75.5:8080/group1/M00/00/00/wKhLBV6FUl6AA0eTACSnIi51C7k037.jpg
使用nginxf访问的话,实际地址是:http://192.168.75.5/group1/M00/00/00/wKhLBV6FUl6AA0eTACSnIi51C7k037.jpg
需要把tracker使用的8080端口去掉,否则无法访问
# 进一步完善nginx配置文件
# 这个server设置的是storage nginx
server {
listen 9991;
server_name localhost; location / {
root html;
index index.html index.htm;
} location ~/group1/M00 {
root /opt/fastdfs_storage/data;
ngx_fastdfs_module;
} location = /50x.html {
root html;
}
} # 若访问不到图片需要配置这个软连接
# ln -s /opt/fastdfs_storage_data/data/ /opt/fastdfs_storage_data/data/M00 # 这个server设置的是tracker nginx
upstream fdfs_group1 {
server 127.0.0.1:9991;
} server {
listen 80;
server_name localhost; location /group1/M00 {
proxy_pass http://fdfs_group1;
} error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

CentOS7部署FastDFS+nginx模块的更多相关文章

  1. 详细说明-CentOS7部署FastDFS+nginx模块(包含集群方式)

    软件下载 # 已经事先把所需软件下载好并上传到/usr/local/src目录了 https://github.com/happyfish100/libfastcommon/archive/V1.0. ...

  2. 在虚拟机中配置FastDFS+Nginx模块

    先上部署图 提示一下, ip 192.168.72.138 上面部署了两个group, 分别为 group1和g2. 另外, 同组之内的 port 要保持一致. 一.安装准备 1. #每台机器都添加两 ...

  3. Ansible + shell 实现部署fastdfs+nginx 实现图片服务器并提供动态缩放功能;

    因为公司阿里服务器变动几次,手动部署了好几次fastdfs+nginx,于是就想到了自动化部署,以下为脚本内容,由于只是想把着功能实现,并未有完完整的判断逻辑: 以下为ansible-playbook ...

  4. CentOS7搭建FastDFS+Nginx

    1. FastDFS 介绍 FastDFS是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的问题.特别适合以文件 ...

  5. 使用passenger在Centos7部署Puma+Nginx+Ruby on Rails

    安装ruby环境 RVM(ruby版本管理工具)安装 gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A170311 ...

  6. CentOS7部署Django,nginx,uwsgi,redis

    前期准备 把所有的软件都传到这个tools文件夹 cd - mkdir tools cd tools/ mkdir /application 安装nginx yum install pcre pcre ...

  7. centos7 install fastdfs nginx

    https://github.com/judasn/Linux-Tutorial/blob/master/markdown-file/FastDFS-Nginx-Lua-GraphicsMagick. ...

  8. centos7配置fastdfs集群(5.09)

    centos7配置fastdfs集群(5.09) 2017年03月10日 23:34:26 带鱼兄 阅读数 1564    版权声明:本文为博主原创文章,转载请注明出处. https://blog.c ...

  9. FastDFS+Nginx+fastdfs-nginx-module集群搭建

    一.实验环境说明 操作系统: Centos 6.6 x64 FastDFS 相关版本: fastdfs-5.05 fastdfs-nginx-module-v1.16 libfastcommon-v1 ...

随机推荐

  1. 配置git的ssh

    Linux,Windows就在git bash here里面输 ① 初始化git账户 git config --global user.name "Eisen" git confi ...

  2. SpringBoot开发 - 什么是热部署和热加载?devtool的原理是什么?

    在SpringBoot开发调试中,如果我每行代码的修改都需要重启启动再调试,可能比较费时间:SpringBoot团队针对此问题提供了spring-boot-devtools(简称devtools)插件 ...

  3. linux新建分区和磁盘

    1.查看已有分区 ]# df –hl fdisk -l 查看磁盘情况 ]# fdisk –l 2.对未分区的进行分区 # fdisk /dev/vdb 硬盘分区 创建了一个55G的分区磁盘 1.新建第 ...

  4. 40+倍提升,详解 JuiceFS 元数据备份恢复性能优化之路

    JuiceFS 支持多种元数据存储引擎,且各引擎内部的数据管理格式各有不同.为了便于管理,JuiceFS 自 0.15.2 版本提供了 dump 命令允许将所有元数据以统一格式写入到 JSON 文件进 ...

  5. (一)java基础篇-----认识java

    1.简单介绍java起源: 1995年,詹姆斯-高斯林在sun公司开发出java编程语言.到2010年,sun公司被Oracle公司收购,而詹姆斯-高斯林也离开了Oracle公司.所以,如今想要安转j ...

  6. DHCP原理及配置

    DHCP工作原理 集中的管理.分配IP地址,使client动态的获得IP地址.Gateway地址.DNS服务器地址等信息,并能够提升地址的使用率. 简单来说,DHCP就是一个不需要账号密码登录的.自动 ...

  7. Solution -「CF520E」Pluses everywhere

    Step 1. 转化一步题目:考虑有 \(n\) 个小球,每个小球有 \(a_i\) 的价值,\(m\) 个板子,把板子插进小球间的空隙,且不能插在第 \(1\) 个球之前与第 \(n\) 个球之后. ...

  8. 日期字符串转为java.sql.Date

    日期字符串转为java.sql.Date类型 问题引出:在将一个日期字符串通过sql语句,插入到数据表的日期字段(字段类型是DATE),时遇到一个问题,如何将一个日期字符串转成java.sql.Dat ...

  9. PHP小工具

    防SQL注入 function clean($input) { if (is_array($input)) { foreach ($input as $key => $val) { $outpu ...

  10. php rand()和mt_ran(),还有随机数生成器

    PHP 的 rand() 函数默认使用 libc 随机数发生器.mt_rand() 函数是非正式用来替换它的.该函数用了 Mersenne Twister 中已知的特性作为随机数发生器,它可以产生随机 ...