本例使用到的所有tar和zip包地址:http://download.csdn.net/detail/corey_jk/9758664

本例中使用CentOS1、CentOS2两台机器实现。

1 GCC安装

由于后面的软件安装需要用到gcc来进行编译,因此这里先安装gcc。

1. 进入终端,以管理员角色安装gcc(此后的操作均是以管理员角色进行操作)。如图2-2所示。

命令:yum install gcc-c++

图2-2 安装gcc命令

2. 列出了依赖的关系包,这里选择“y”。

图2-3 安装gcc

3. 依赖包下载完成后会提示是否继续,选择“y”完成安装。

图2-4 安装gcc

2 安装libfastcommon

FastDFS的安装依赖libfastcommon库,所以需要先进行安装。

1. libfastcommon下载

下载地址:https://github.com/happyfish100/libfastcommon,如图2-5所示。

图2-5 libfastcommon下载

2. 安装libfastcommon

(1)将libfastcommon复制到/usr/local目录,并解压,如图2-6所示。

解压命令:unzip libfastcommon-master.zip

图2-6 解压libfastcommon

(2)libfastcommon编译与安装,如图2-7,2-8所示。

编译命令:./make.sh

图2-7 编译libfastcommon

安装命令:./make.sh install

图2-8 安装libfastcommon

(3)可以看到libfastcommon.so安装到了/usr/lib64/libfastcommon.so。但是FastDFS主程序设置的lib目录是/usr/local/lib所以需要创建软链接。如图2-9所示。

命令:ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so

图2-9 设置libfastcommon软连接

这里libfastcommon已经安装设置完毕。

3 FastDFS安装

1. FastDFS下载

下载地址:http://sourceforge.net/projects/fastdfs,如图2-10所示。这里选择5.05版本。

图2-10 FastDFS下载

2. 安装FastDFS

(1)将FastDFS复制到/usr/local目录,并解压,如图2-11所示。

解压命令:tar -zxvf fastdfs-5.05.tar.gz

图2-11 解压FastDFS

(2)FastDFS编译与安装,如图2-12,2-13所示。

编译命令:./make.sh

图2-12 编译FastDFS

安装命令:./make.sh install

图2-13 安装FastDFS

到这里FastDFS已经安装完成。

4.FastDFS配置

由于FastDFS通过Tracker服务器,将文件放在Storage服务器上存储(Tracker服务器与Storage服务器可以为同一台服务器,这里主要介绍Tracker、Storage分别在不同服务器上的部署),因此将虚拟机CentOS1作为Tracker服务器,将虚拟机CentOS2作为Storage服务器。

4.1.Tracker服务配置(CentOS1虚拟机)

1. 进入/etc/fdfs目录,将tracker.conf.sample命名为tracker.conf,如图2-14所示。

命令:cp tracker.conf.sample tracker.conf

图2-14 将tracker.conf.sample命名为tracker.conf

2. 打开tracker.conf,并按照图2-15、2-16进行设置。

命令:vim tracker.conf

图2-15 tracker参数设置

图2-16 tracker参数设置

3. 在根目录下创建 /fastdfs/tracker文件夹,如图2-17所示。

图2-17 创建/fastdfs/tracker文件夹

4. 开启防火墙22122端口。

进入/etc/sysconfig/

cd /etc/sysconfig/

修改iptables文件

vim iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT

重启防火墙:

停止服务:service iptables stop

启动服务:service iptables start

5. 启动tracker服务。

命令:fdfs_trackerd /etc/fdfs/tracker.conf

图2-19 启动tracker服务

到此tracker服务配置完成。

4.2.Storage服务配置(CentOS1 CentOS2虚拟机都需要)

1. 进入/etc/fdfs目录,将storage.conf.sample命名为storage.conf,如图2-20所示。

命令:cp storage.conf.sample storage.conf

图2-20 将storage.conf.sample命名为storage.conf

2. 打开storage.conf,并按照图2-21、2-22、2-23、2-24进行设置。

图2-21 storage参数设置

图2-22 storage参数设置

图2-23 storage参数设置

图2-24 storage参数设置

3. 在根目录下创建 /fastdfs/storage文件夹,如图2-25所示。

图2-25 创建/fastdfs/storage文件夹

4. 开启防火墙23000端口。

进入/etc/sysconfig/

cd /etc/sysconfig/

修改iptables文件

vim iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT

重启防火墙:

停止服务:service iptables stop

启动服务:service iptables start

5. 启动storage服务。

命令:fdfs_storaged /etc/fdfs/storage.conf

图2-27 启动storage服务

到此storage服务配置完成。

4.3.Client服务配置(CentOS1虚拟机)

这里与tracker服务部署在同一台服务器上,即在CentOS1虚拟机上配置。

1. 进入/etc/fdfs目录,将client.conf.sample命名为client.conf,如图2-28所示。

命令:cp client.conf.sample client.conf

图2-28 将client.conf.sample命名为client.conf

2. 打开client.conf,并按照图2-29进行设置。

图2-29 client参数设置

3. 在根目录下创建 /fastdfs/client文件夹,如图2-30所示。

图2-30 创建/fastdfs/client文件夹

4. 测试FastDFS是否部署成功,如图2-31所示。

命令:fdfs_upload_file /etc/fdfs/client.conf

/home/nginx/FastDFS_v5.05.tar.gz(测试上传的文件)

2-31 测试FastDFS

到此client已经配置完毕。

5.Nginx部署

5.1 Storage服务器上Nginx插件安装(CentOS1、CentOS2虚拟机)

FastDFS通过Tracker服务器,将文件放在Storage服务器存储,但是同组之间的服务器需要复制文件,有延迟的问题。假设Tracker服务器将文件上传到了192.168.1.80,文件ID已经返回客户端,这时,后台会将这个文件复制到192.168.1.30,如果复制没有完成,客户端就用这个ID在192.168.1.30取文件,肯定会出现错误。这个fastdfs-nginx-module可以重定向连接到源服务器取文件,避免客户端由于复制延迟的问题,出现错误。

1. fastdfs-nginx-module下载

下载地址:

http://jaist.dl.sourceforge.net/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz

2. 解压fastdfs-nginx-module,如图3-1所示。

命令:tar –zxvf fastdfs-nginx-module_v1.16.tar.gz

图3-1解压fastdfs-nginx-module

3. 进入 fastdfs-nginx-module/src目录,打开config文件,将

CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"

改成

CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/",

如图3-2、3-3所示。

图3-2 打开config文件

图3-3 修改CORE_INCS参数

4. 将mod_fastdfs.conf复制到/etc/fdfs目录,如图3-4所示。

命令:cp mod_fastdfs.conf /etc/fdfs/mod_fastdfs.conf

图3-4将mod_fastdfs.conf复制到/etc/fdfs目录

5. 进入/etc/fdfs目录,打开mod_fastdfs.conf文件,请按图3-5、3-6提示进行设置。

图3-5 mod_fastdfs参数设置

图3-6 mod_fastdfs参数设置

6. 进入/usr/local/fastdfs-5.05/conf目录中,将http.conf、mime.types复制到/etc/fdfs目录,如图3-7所示。可能不在/usr/local/fastdfs-5.05/conf,而是在/usr/local/FastDFS/conf

命令:cp http.conf /etc/fdfs/http.conf

cp mime.types /etc/fdfs/mime.types

图3-7 将http.conf、mime.types复制到/etc/fdfs目录

到此fastdfs-nginx-module安装配置完成。

5.2 Pcre安装(CentOS1、CentOS2虚拟机均需安装)

由于nginx的编译安装需要用到pcre,因此这里先进行安装。

1. pcre下载

下载地址:

ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.gz

2. pcre解压,如图3-8所示。

命令:tar -zxvf pcre-8.37.tar.gz

图3-8 pcre解压

3. 进入pcre-8.37目录,并进行配置,如图3-9所示。

图3-9 pcre配置

4. 编译并进行安装,如图3-10所示。

命令:make && make install

图3-10编译、安装

5.3 Zlib安装(CentOS1、CentOS2虚拟机均需安装)

由于nginx的编译安装需要用到zlib,因此这里先进行安装。

1. zlib下载

下载地址:http://prdownloads.sourceforge.net/libpng/zlib-1.2.8.tar.gz

2. zlib解压,如图3-11所示。

命令:tar -zxvf zlib-1.2.8.tar.gz

图3-11 zlib解压

3. 进入zlip-1.2.8目录,并进行配置,如图3-12所示。

图3-12 zlib配置

4. 编译并进行安装,如图3-13所示

命令:make && make install

图3-13编译、安装

5.4 Storage Nginx安装(CentOS2、 CentOS2虚拟机)

1. nginx下载

下载地址:http://nginx.org/download/nginx-1.8.0.tar.gz

2. nginx解压,如图3-14所示。

命令:tar -zxvf nginx-1.8.0.tar.gz

图3-14 nginx解压

3. nginx编译配置,如图3-15所示。

命令:./configure --prefix=/usr/local/nginx --add-module=/usr/local/fastdfs-nginx-module/src

图3-15 nginx编译配置

4. nginx编译,如图3-16所示。

图3-16 nginx编译

5. nginx安装,如图3-17所示。

图3-17 nginx安装

6. 进入/usr/local/nginx/conf,打开nginx.conf,进行nginx配置,如图3-18所示。

图3-18 打开nginx.conf

在server中添加:

location /group1/M00 {

root /fastdfs/storage/data;

ngx_fastdfs_module;

}

如图3-19所示。

图3-19 设置location

7. 进入 /usr/local/nginx/sbin中,启动nginx,如图3-20所示。

启动之前先执行:

ln -s /usr/local/lib/libpcre.so.1 /lib64

图3-20 启动nginx

8. 开启防火墙80端口,如图3-21所示。

进入/etc/sysconfig/

cd /etc/sysconfig/

修改iptables文件

vim iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

重启防火墙:

停止服务:service iptables stop

启动服务:service iptables start

到此Storage Nginx安装完成。

5.5 Tracker nginx安装(CentOS1虚拟机)

1. ngx_cache_purge下载

下载地址:

http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz

2. 将ngx_cache_purge复制到/usr/local目录,如图3-22所示。

命令:cp ngx_cache_purge-2.3.tar.gz /usr/local

图3-22 赋值ngx_cache_purge

3. 解压ngx_cache_purge、nginx,并进nginx行配置,如图3-23、3-24、3-25所示。

命令:tar -zxvf ngx_cache_purge-2.3.tar.gz

tar -zxvf nginx-1.8.0.tar.gz

./configure --prefix=/usr/local/nginx --add-module=/usr/local/ngx_cache_purge-2.3 --with-pcre=/usr/local/pcre-8.37/ --with-zlib=/usr/local/zlib-1.2.8

图3-23 nginx编译配置

图3-24 nginx编译

图3-25 nginx安装

4. 在“http”内设置缓存、反向代理的参数,如图3-26所示。

进入/home/local/nginx/conf

编辑:nginx.conf

server_names_hash_bucket_size 128;

client_header_buffer_size 32k;

large_client_header_buffers 4 32k;

client_max_body_size 300m;

proxy_redirect off;

proxy_set_header Host $http_host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_connect_timeout 90;

proxy_send_timeout 90;

proxy_read_timeout 90;

proxy_buffer_size 16k;

proxy_buffers 4 64k;

proxy_busy_buffers_size 128k;

proxy_temp_file_write_size 128k;

图3-26 设置缓存、反向代理参数

5. 在“http”中设置缓存存储路径、存储方式、分配内存大小、磁盘最大空间、缓存期限以及group1 的服务器IP,如图3-27所示。

#设置缓存存储路径、存储方式、分配内存大小、磁盘最大空间、缓存期限

proxy_cache_path  /var/cache/nginx/proxy_cache  levels=1:2

keys_zone=http-cache:500m max_size=1g inactive=30d;

proxy_temp_path /var/cache/nginx/proxy_cache/tmp;

#设置 group1 的服务器

upstream fdfs_group1 {

server 192.168.125.128 weight=1 max_fails=2 fail_timeout=30s;

}

图3-27 缓存、group1 服务器IP设置

6. 在“http”中的“server”中添加“group1负载均衡参数”与“清除缓存的访问权限”,如图3-28所示。

#设置group1的负载均衡参数

location /group1/M00 {

proxy_next_upstream http_502 http_504 error timeout invalid_header;

proxy_cache http-cache;

proxy_cache_valid  200 304 12h;

proxy_cache_key $uri$is_args$args;

proxy_pass http://fdfs_group1;

expires 30d;

}

#设置清除缓存的访问权限

location ~ /purge(/.*) {

allow 127.0.0.1;

deny all;

proxy_cache_purge http-cache $1$is_args$args;

}

图3-28 添加“group1负载均衡参数”与“清除缓存的访问权限”

7. 在/var/cache目录下新建/var/cache/nginx/proxy_cache目录,如图3-29所示。

图3-29 新建/var/cache/nginx/proxy_cache目录

8. 进入/usr/local/nginx/sbin目录,启动nginx,如图3-30所示。

图3-30 启动nginx

9. 开启防火墙80端口,如图3-31所示。

命令:firewall-cmd --zone=public --add-port=80/tcp –permanent

firewall-cmd –reload

图3-31 开启防火墙80端口

到此Tracker Nginx安装、配置完成。

FastDFS+Nginx部署详细教程的更多相关文章

  1. CentOS 7 配置 nginx php-fpm 详细教程

    CentOS 7 配置 Nginx 的步骤如下: 首先更新 yum,没有安装 yum 的自行安装 yum update 1. 安装 Nginx yum install nginx 开启 Nginx 并 ...

  2. 在Linux下安装nginx服务器详细教程

    首先安装centos的扩展源 yum install epel-release 安装Nginx 方法一: yum install nginx -y 查看版本号,开启nginx,查看进程 nginx – ...

  3. Jenkins 安装与部署详细教程

    一.概述 Jenkins 的前身是 Hudson 是一个可扩展的持续集成引擎.Jenkins 是一款开源 CI&CD 软件,用于自动化各种任务,包括构建.测试和部署软件.Jenkins 支持各 ...

  4. Robot Framework安装部署详细教程

    (转自“义甬君”) Robot Framework安装准备 说实话,在我玩了这么多自动化工具后,感觉Robot Framework所需的环境和安装过程是相对比较繁琐和复杂的.要真正搭建一套可以使用的R ...

  5. 阿里云运维部署工具AppDeploy详细教程

    AppDeploy是一个通过SSH实现的命令行工具,可完成应用部署和远程运维管理.当前工具实现为两个版本:普通版(伪代码描述语言)和Python版.Python版使用Python语法规则,可实现您的各 ...

  6. windows7配置Nginx+php+mysql的详细教程

    windows7配置Nginx+php+mysql的详细教程 作者:Vincent.李 字体:[增加 减小] 类型:转载 时间:2016-09-04我要评论 这篇文章主要介绍了windows7配置Ng ...

  7. django+uwsgi+nginx部署(非常详细)

    django+uwsgi+nginx部署 1.介绍: 在网上看了很多教程,但自己部署了很久都没有成功,这篇博文记录自己所踩过得坑. 2.环境: Ubuntu 16.04.1 LTS (GNU/Linu ...

  8. 2020年ubuntu1804安装nginx最新稳定版1.16详细教程笔记

    第一次使用nginx是2007年,当时主流还是apache.nginx横空出世,在web2.0的推动下,迅速崛起.眼下已是绝对的主流了. 当时,还有一个轻量级的lighttpd,是德国人写,刚开始还并 ...

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

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

随机推荐

  1. IFrame跨域访问自定义高度

    由于JS禁止跨域访问,如何实现不同域的子页面将高度返回给父页面本身,是解决自定义高度的难点. JS跨域访问问题描述:应用A访问应用B的资源,由于A,B应用分别部署在不同应用服务器(tomcat)上,属 ...

  2. Online Schema Change for MySQL

    It is great to be able to build small utilities on top of an excellent RDBMS. Thank you MySQL. This ...

  3. Spring3.2新注解@ControllerAdvice

    Spring3.2新注解@ControllerAdvice   @ControllerAdvice,是spring3.2提供的新注解,从名字上可以看出大体意思是控制器增强.让我们先看看@Control ...

  4. Java Dwr3实现消息推送步骤详解

    DWR包含两个主要的部分:允许JavaScript从WEB服务器上一个遵循了AJAX原则的Servlet中获取数据.另外一方面一个JavaScript库可以帮助网站开发人员轻松地利用获取的数据来动态改 ...

  5. PHP7新特性

    重写ZenVM,性能比PHP5.6提升300% 新特性: 1.变量类型(为PHP7.1的JIT特性做准备)function test(int $a, string $b, array $c) : in ...

  6. PHPEXCEL实例-导出EXCEL

      PHPExcel 是相当强大的 MS Office Excel 文档生成类库,当需要输出比较复杂格式数据的时候,PHPExcel 是个不错的选择. <?php /* * 导出EXCEL *  ...

  7. Myeclipse SVN 修改用户名和密码

    转自:http://blog.csdn.net/chow__zh/article/details/7731497 解决方案: 在Eclipse使用SVN的过程中大多数人往往习惯把访问SVN的用户名密码 ...

  8. eclipse中集成svn maven开发手册---创建提分支

    开发时,需要拉取分支进行修改等操作 右键项目,选择team->分支/标记 输入创建分支地址 注意: 1,创建分支路径时,最后一层文件名称为项目的名称 2,点击浏览按钮可能会出现无法选择,且ecl ...

  9. C # 产生鼠标点击事件

    新建一个WinFrom,找到MouseDown,回车,生成代码如下点击的效果如图 参考文章:http://blog.csdn.net/u012842807/article/details/454143 ...

  10. UVa 10034 - Freckles

    题目大意:给出n个点的坐标(x,y),要求用线段将n个点连接起来,求最小的线段和. 最小生成树问题,用Kruskal算法进行求解,其中用到了并查集.将所有的点连接,构成一张图,对每一条边进行编号,两点 ...