文档章节

FastDFS+Ngnix安装配置及使用

IamOkay
 IamOkay
发布于 2016/04/16 10:49
字数 1773
阅读 758
收藏 12
点赞 2
评论 1

参考博客

http://www.linux178.com/storage/fastdfs-nginx-cache.html

centos安装FastDFS+Nginx

FastDFS 安装及使用

http://www.linuxidc.com/Linux/2015-01/111889.htm


软硬件准备

最小化安装的 CentOS 6.2

tracker1:   192.168.227.128
storage1:   192.168.227.130
storage1:   192.168.227.131
一.安装EPEL
yum install http://mirrors.hustunique.com/epel//6/x86_64/epel-release-6-8.noarch.rpm

当然,你的访问速度有些慢,你可以尝试如下操作,然后再安装epel

Centos修改镜像为国内的阿里云源或者163源等国内源

二、安装libevent,为了编译FastDFS做准备

卸载掉旧版本

rpm -qa libevent
libevent-1.4.13-1.el6.x86_64
rpm -e --nodeps libevent

然后下载安装新版本

1.下载libevent:
wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
2.解压libevent:
tar -zxvpf libevent-2.0.21-stable.tar.gz
3.进入解压目录:
cd libevent-2.0.21-stable
4.指定安装目录:
./configure --prefix=/usr/local/libevent-2.0.21
5.安装
make && make install

为libevent创建软链接(类似windows快捷目录)到/lib库下,64位系统对应/lib64(此处可以省略)

ln -s /usr/local/lib/libevent* /lib/
#如果是64bit系统,使用如下命令
#ln -s /usr/local/lib/libevent* /lib64/
三.安装FastDFS Traceker&Storage

Traceker和Storage都是同样的安装包,我们只需要把FastDFS安装在不同的主机上,通过配置进行区别

二、安装FastDFS步骤如下:
1.下载FastDFS:
wget http://fastdfs.googlecode.com/files/FastDFS_v4.06.tar.gz
2.解压FastDFS:
tar xvf FastDFS_v4.06.tar.gz
3.进入解压目录:
cd FastDFS
4.修改FastDFS的安装文件:
vi make.sh
TARGET_PREFIX=/usr/local/FastDFS  ---安装路径  
TARGET_CONF_PATH=/etc/fdfs  ---配置文件路径  
WITH_LINUX_SERVICE=1   ---是否为linux服务  
5.指定libevent的lib目录:
./make.sh C_INCLUDE_PATH=/usr/local/libevent-2.0.21/include LIBRARY_PATH=/usr/local/libevent-2.0.21/lib
6.安装FastDFS:
./make.sh install
7.设置软连接(否则编译nginx时会出错)
ln -sv /usr/local/FastDFS/include/fastcommon /usr/local/include/fastcommon
ln -sv /usr/local/FastDFS/include/fastdfs /usr/local/include/fastdfs
ln -sv /usr/local/FastDFS/lib/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -sv /usr/local/FastDFS/lib/libfastcommon.so.1 /usr/local/lib/libfastcommon.so.1
ln -sv /usr/local/FastDFS/lib/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -sv /usr/local/FastDFS/lib/libfdfsclient.so.1 /usr/local/lib/libfdfsclient.so.1


四、安装准备

在安装Nginx之前,需要安装gcc、 openssl-devel、 pcre-devel和zlib-devel软件库,具体如下:

yum install gcc-c++  openssl-devel  pcre-devel zlib-devel

五、安装Nginx和fastdfs-nginx-module到Storage上

在storage上安装的nginx主要为了提供http的访问服务,同时解决group中storage服务器的同步延迟问题。(需要安装ngx_cache_purge-2.1.tar.gz)


wget http://nginx.org/download/nginx-1.6.0.tar.gz
wget http://fastdfs.googlecode.com/files/fastdfs-nginx-module_v1.15.tar.gz
将安装包文件上传到/usr/local中执行以下操作:
1.进入文件目录:
cd /usr/local
2.解压安装包:
tar -zxv -f nginx-1.6.0.tar.gz
tar -xvf fastdfs-nginx-module_v1.15.tar.gz
3.修改安装包目录名称:
mv nginx-1.6.0 nginx
4.进入安装包目录:
cd /usr/local/nginx
5.配置安装目录:
./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf  --add-module=/usr/local/fastdfs-nginx-module/src6.安装Nginx:
makemake install
7.修改防火墙:
vi + /etc/sysconfig/iptables
8.添加配置项 -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
9.重启防火墙:
service iptables restart
 10.将libfastcommon.so、libfastcommon.so.1、libfdfsclient.so、libfdfsclient.so.1复制到/usr/lib,
否则nginx启动会报错。
Nginx的操作:
启动:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf或者
cd /usr/local/nginx/sbin
./nginx


停止服务:
#查询nginx主进程号 
ps -ef | grep nginx
#停止进程 
kill -QUIT 主进程号 
#快速停止 
kill -TERM 主进程号 
#强制停止 
pkill -9 nginx
 
重启:
/usr/local/nginx/sbin/nginx -s reload
六、配置tracker server:
1. vi /etc/fdfs/tracker.conf
bind_addr=192.168.227.128
port=22122
# 配置data和log的存放路径,该路径如果不存在,需要自己创建
base_path=/home/tracker/fastdfs

2.配置防火墙:
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 22122 -j

3.保存配置:
/etc/init.d/iptables save

4. 启动 tracker/usr/local/FastDFS/bin/fdfs_trackerd /etc/fdfs/tracker.conf
在启动时报错:
/usr/local/bin/fdfs_trackerd: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory
执行下面的命令即可正常启动:
echo '/usr/local/libevent-2.0.21/include/' >> /etc/ld.so.conf
echo '/usr/local/libevent-2.0.21/lib/' >> /etc/ld.so.conf
ldconfig

5. 查看监听程序:
netstat -ntpl | grep fdfs

6. 查看日志文件:
cat /home/tracker/fastdfs/logs/trackerd.log

7.添加开机启动命令行:
vim /etc/rc.d/rc.local/usr/local/FastDFS/bin/fdfs_trackerd 
/etc/fdfs/tracker.conf restart

1、tracker
A、启动命令 :/usr/local/bin/fdfs_trackerd  /etc/fdfs/tracker.conf(tracker的配置文件路径)
B、重启命令:/usr/local/bin/restart.sh  /usr/local/bin/fdfs_trackerd /usr/local/config/tracker.conf (tracker的配置文件路径)

七、配置storage server服务器
1. vi /etc/fdfs/storage.conf

group_name=group1
bind_addr=192.168.227.130
base_path=/home/storage/fastdfs
store_path0=/home/storage/fastdfs
tracker_server=192.168.227.128:22122 #可以设置多个-----------待验证
http.server.port=80 #设置访问storage服务器的端口号

#拷贝配置文件到etc下
2. cp /usr/local/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

#进行编辑mod_fastdfs.conf
3. vi /etc/fdfs/mod_fastdfs.conf

tracker_server=192.168.227.128:22122   -- tracker server的ip和端口,此处可以写多个tracker server,每行一个
url_have_group_name = true      --必须设置为true才能支持多个group
group_count = 2                 --storage的group个数

[group1]
base_path=/home/storage1/fastdfs
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/home/stroage1/fastdfs



[group2]
base_path=/home/storage1/fastdfs
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/home/stroage1/fastdfs



#ngnix配置
4. vi /usr/local/nginx/conf/nginx.conf   
server {
    listen       80;
    server_name  localhost;
    location ~ /group([1-2])/M00/ {
      
     root /home/storage1/fastdfs/data;           
     ngx_fastdfs_module;
  }
}
5.配置防火墙:
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 23000 -j ACCEPT
6.保存配置:
/etc/init.d/iptables save
7.启动 storage  
/usr/local/FastDFS/bin/fdfs_storaged /etc/fdfs/storage.conf
8. 查看监听程序:
netstat -ntpl | grep fdfs
9. 查看日志文件:
cat /home/storage/fastdfs/logs/storaged.log

2、storage
A、启动命令:/usr/local/bin/fdfs_storaged /etc/fdfs/storage_p1.conf (storage配置文件路径)
B、重启命令:/usr/local/bin/restart.sh :/usr/local/bin/fdfs_storaged /etc/fdfs/storage_p1.conf (storage配置文件路径)

八、测试:
vim /etc/fdfs/client.conf
base_path=/home/storage/fastdfs
tracker_server=192.168.1.128:22122


 /usr/local/FastDFS/bin/fdfs_test /etc/fdfs/client.conf upload a.html


在浏览器上打开http://192.168.227.130/group1/M00/00/00/wKjjglOOkd2AdZiiAAAFng0Nczs9728851_big

测试成功!!!


九.在Traceker上安装Ngnix(非重点内容,玩玩即可)

在tracker上安装的nginx主要为了提供http访问的反向代理、负载均衡以及缓存服务。当然,也可以单独安装Ngnix

worker_processes  4;                  #根据CPU核心数而定
events{
    worker_connections  65535;       #最大链接数
    use epoll;#新版本的Linux可使用epoll加快处理性能
}
http{
#设置缓存参数
    server_names_hash_bucket_size 128;
    client_header_buffer_size32k;
    large_client_header_buffers 4 32k;
    client_max_body_size300m;
    sendfile        on;
    tcp_nopushon;
    proxy_redirectoff;
    proxy_set_headerHost $http_host;
    proxy_set_headerX-Real-IP $remote_addr;
    proxy_set_headerX-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_connect_timeout 90;
    proxy_send_timeout 90;
    proxy_read_timeout 90;
    proxy_buffer_size16k;
    proxy_buffers 4 64k;
    proxy_busy_buffers_size128k;
    proxy_temp_file_write_size128k;
    #设置缓存存储路径、存储方式、分配内存大小、磁盘最大空间、缓存期限
    proxy_cache_path/var/cache/nginx/proxy_cache levels=1:2 keys_zone=http-cache:500m max_size=10ginactive=30d;
    proxy_temp_path/var/cache/nginx/proxy_cache/tmp;
    #设置group1的服务器
  upstream fdfs_group1 {
    server  192.168.227.130:80 weight=1 max_fails=2 fail_timeout=30s;
    server  192.168.227.131:80 weight=1 max_fails=2 fail_timeout=30s;
    }
#设置group2的服务器
 upstream  fdfs_group2 {
    server  192.168.227.130:80 weight=1 max_fails=2 fail_timeout=30s;
    server  192.168.227.131:80 weight=1 max_fails=2 fail_timeout=30s;
    }

 
server{
#设置服务器端口
listen       80;
#设置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;
        }
#设置group2的负载均衡参数
location/group2/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_group2;
            expires 30d;
        }

#设置清除缓存的访问权限
location~ /purge(/.*) {
  allow  127.0.0.1;
  allow  172.16.1.0/24;
  deny  all;
  proxy_cache_purge http-cache  $1$is_args$args;
 }

运行nginx之前,先要把防火墙中对应的端口打开(本例中为80)。

具体参考:http://blog.csdn.net/lynnlovemin/article/details/39398043



© 著作权归作者所有

共有 人打赏支持
IamOkay
粉丝 187
博文 458
码字总数 369998
作品 0
海淀
程序员
加载中

评论(1)

yuanfy008
yuanfy008
想问下fastDFS有windows版的吗
mac php nginx mysql 环境搭建及eclipse/phpstorm xdebug

由于以前使用的都是windows对于新买的Mac系统异常不熟悉,所以安装环境碰到了许多小问题,这里做些总结。希望可以对以后安装的朋友有点用处。 首先是搭建PHP 环境,这里我使用了下面这个博客...

solate
2015/10/12
123
0
使用腾讯云配置小程序Python开发环境

最近做小程序服务器的配置,这一篇是服务器配置的记录,方便以后安装配置。 购买服务器 之所以选腾讯云的原因很简单,那就是便宜,,最低配置每月只需29¥。 在 腾讯云 官网注册登录就可以直...

goodspeed
2017/10/21
0
0
ELK+filebeat日志分析系统部署文档

环境说明 架构说明及架构图 filebeat部署在客户端用于收集日志并把收集到的日志发送到logstash. logstash把收集到的日志处理之后交给elasticsearch. kibana从elasticsearch中提取数据并进行展...

yzy121403725
2017/10/13
0
0
学习笔记汇总

linux系统管理和服务搭建配置: 关于Linux的历史 linux系统启动过程和系统目录结构 安装和优化linux系统基础环境 Linux文件与目录管理 Linux系统用户及用户组管理 linux系统文档的压缩与打包...

qq441009395
2017/07/24
0
0
Docker 官方出品丨Docker 最佳实践系列指南(二)

本文首发自“Docker公司”公众号(ID:docker-cn) 编译丨小东 每周一、三、五 与您不见不散! 对于 Docker EE 安装的建议 本节详细说明架构的安装过程,并提供一个核对表。它并不能替代有关...

docker公司
05/28
0
0
HADOOP单机系统安装

一.安装和配置JDK 1.HADOOP是以JAVA语言写成的,需要预先在本地计算机上安装JDK,由于直接使用wget不能绕过ORACLE的网站验证,可以使用下面代码下载。 wget --no-cookies --no-check-certifi...

clgo
2016/01/10
20
0
Windows下通过MySQL Installer安装MySQL服务

MYSQL官方提供了Installer方式安装MYSQL服务以及其他组件,使的Windows下安装,卸载,配置MYSQL变得特别简单。 1. 安装准备 1.1 准备MySQL安装包 百度云盘共享安装包下载 密码:jmj2 window...

secondriver
06/26
0
0
Jenkins安装及入门配置

一、安装Jenkins Jenkins是开源的,使用Java编写的持续集成的工具,在Centos上可以通过yum命令行直接安装。记录下安装的过程,方便以后查找。需要先安装Java,如果已经Java可以跳过该步骤。 安...

林在路上
01/12
0
0
测试freenas作为ipsan使用

FreeNAS是一种操作系统,几乎可以安装在任何硬件平台上,通过网络共享数据。FreeNAS是为您的数据创建集中且易于访问的地方的最简单方法。将FreeNAS与ZFS一起使用可以保护,存储,备份您的所有...

羊草
07/03
0
0
编译安装Nginx实现网络访问多虚拟主机(wordpress+phpmyadmin)

一、安装Nginx 后面会有一篇博客专门介绍Nginx,在这篇博客中仅仅介绍如何安装Nginx并配置,使其实现多个虚拟主机,分别根据不同的域名访问wordpress和phpMyadmin,对于这两个软件已经使用a...

正经的青年
06/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

七、JSP九大内置对象和四个作用域

九大内置对象: request:类型是HttpServletRequest,和Servlet里的HttpServletRequest一模一样。 response:类型是HttpServletResponse,和Servlet里的HttpServletResponse一模一样。JSP里基...

Wakeeee_
3分钟前
0
0
Confluence 6 配置快捷链接

快捷链接提供了提供了一个在 Confluence 中访问从常用资源的快速方法。当你创建一个快捷链接的时候,你需要为你的快捷链接 URL 指派一个 Key,用户可以在 Confluence 中只输入这个 Key 用来替...

honeymose
4分钟前
0
0
我的第一篇博文

网络界的前辈们好。本人从接触网络到你现在也有4、5年的时间了,期间不断的通过网络学习,当然也没少看大牛们给的建议。 2011年的9月份,如愿以偿的上了“大学”,刚上大学就接触到了一门叫做...

yeahlife
29分钟前
0
0
第十四章NFS服务搭建与配置

14.1 NFS介绍 NFS介绍 NFS是Network File System的缩写;这个文件系统是基于网路层面,通过网络层面实现数据同步 NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netap...

Linux学习笔记
35分钟前
0
0
双向认证-nginx

1、设置容器 docker run -it --name nginx-test2 -v /home/nginx:/apps -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro -p 8183:80 -p 7443:443 -d nginx:stable 2、修改nginx配......

hotsmile
36分钟前
0
0
深入了解 Java 自动内存管理机制及性能优化

一图带你看完本文 一、运行时数据区域 首先来看看Java虚拟机所管理的内存包括哪些区域,就像我们要了解一个房子,我们得先知道这个房子大体构造。根据《Java虚拟机规范(Java SE 7 版)》的规...

Java大蜗牛
38分钟前
4
0
SpringBoot | 第六章:常用注解介绍及简单使用

前言 之前几个章节,大部分都是算介绍springboot的一些外围配置,比如日志 配置等。这章节开始,开始总结一些关于springboot的综合开发的知识点。由于SpringBoot本身是基于Spring和SpringMvc...

oKong
38分钟前
7
0
云数据库架构演进与实践

如今,大型企业如金融企业和银行等,在下一代的微服务架构转型要求下,需要基础软件和数据平台能够实现原生的云化,以满足微服务架构的需求。 微服务,也就是一种面向服务的,有特定边界的松...

巨杉数据库
40分钟前
0
0
Linux系统梳理---系统搭建(一):jdk卸载与安装

1.去官网下载符合Linux版本的jdk,暂用jdk-8u171-linux-x64.rpm 2.登陆Linux,进入usr目录,创建java目录(方便管理,可以其他位置):mkdir java 3.上传下载的jdk包至Linux服务器,使用rz指令(sz f...

勤奋的蚂蚁
50分钟前
0
0
Linux Kernel 4.16 系列停止维护,用户应升级至 4.17

知名 Linux 内核维护人员兼开发人员 Greg Kroah-Hartman 近日在发布 4.16.18 版本的同时,宣布这是 4.16 系列的最后一个维护版本,强烈建议用户立即升级至 4.17 系列。 Linux 4.16 于 2018 年...

六库科技
52分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部