下载相关包:

libevent-2.0.22-stable.tar.gz =》 https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz

https://sourceforge.net 下载相应的FASTDFS文件:

fastdfs_client_java._v1.25.tar.gz

fastdfs-nginx-module_v1.16.tar.gz

FastDFS_v5.08.tar.gz

nginx-1.11.6.tar.gz

libfastcommon-master =》https://github.com/happyfish100/libfastcommon/archive/master.zip

拓扑图

1.解压安装

a. libevent:

rpm -e --nodepes `rpm -qa | grep libevent
cd libevent1.4.14b
./configure --prefix=/usr
make clean
make
make install

2.FastDFS_v5.08

cd FastDFS
./make.sh
./make.sh install

有报错信息

compilation terminated.

make: *** [../common/fdfs_global.o] Error 1

需要安装 libfastcommon-master

3. libfastcommon-master

 unzip master.zip
cd libfastcommon-master/
./make.sh
./make.sh install

然后继续安装FASTDFS

配置fastdfs:

配置tracker:

# cd /etc/fdfs/

# cp tracker.conf.sample tracker.conf

修改配置文件

disabled=false        #启用配置文件

port=22122          #设置tracker的端口号

base_path=/data/fastdfs/trackerd  #设置tracker的数据文件和日志目录(需预先创建)

http.server_port=8090   #设置http端口号

启动:

# mkdir -p /data/fastdfs/trackerd

# fdfs_trackerd /etc/fdfs/tracker.conf #启动

# /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

设置开机启动

# echo '/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart' >> /etc/rc.d/rc.local

配置storage:

1.安装 与tracker 安装步骤相同

disabled=false            #启用配置文件

group_name=group1        #组名,根据实际情况修改

port=23000                #设置storage的端口号

base_path=/data/fastdfs/storage  #设置storage的日志目录(需预先创建)

store_path_count=1        #存储路径个数,需要和store_path个数匹配

store_path0=/data/fastdfs/storage  #存储路径

tracker_server=172.16.8.8:22122 #tracker服务器的IP地址和端口号

http.server_port=8090    #设置http端口号

启动

# mkdir -p /data/fastdfs/storage

# /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

设置开机启动

# echo '/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart' >> /etc/rc.d/rc.local

查看状态

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

# netstat -antp | grep storage

上传测试(配置Client,client.conf)

cp client.conf.sample client.conf
base_path=/home/yuqing/fastdfs-> base_path=/data/fastdfs_tracker  
tracker_server=192.168.209.121:22122 -> tracker_server=172.16.8.8:22122
http.tracker_server_port=8080 ->http.tracker_server_port=8090

然后测试上传

fdfs_test /etc/fdfs/client.conf upload a.jpg
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf

4. 安装Nginx

cd useradd -r nginx
useradd -r nginx
./configure --prefix=/usr/local/nginx --add-module=/data/fastdfs-nginx-module/src
make
make install NOTE:

安装Nginx时报错

./configure: error: the HTTP rewrite module requires the PCRE library.

安装pcre-devel解决问题
yum -y install pcre-devel

错误提示:./configure: error: the HTTP cache module requires md5 functions
from OpenSSL library.   You can either disable the module by using
--without-http-cache option, or install the OpenSSL library into the system,
or build the OpenSSL library statically from the source with nginx by using
--with-http_ssl_module --with-openssl=<path> options.

解决办法:

yum -y install openssl openssl-devel

总结:

yum -y install pcre-devel openssl openssl-devel

./configure --prefix=/usr/local/nginx

make

make install

一切搞定


Note:
/usr/local/src/fastdfs-nginx-module/src/common.c:21:25: 错误:fdfs_define.h:没有那个文件或目录

[root@server1 src]# cp -rf /usr/include/fast* /usr/local/include/
[root@server1 src]# ls /usr/local/include/
fastcommon fastdfs
然后再次编译Nginx 配置:
vim /usr/local/nginx/conf/nginx.conf
location ~ /group[1-3]/M00 {
root /data/fastdfs/storage/data;
ngx_fastdfs_module;
}
/data/fastdfs/storage/data 这个是指向 真正存储文件的地方

建立 M00 至存储目录的符号连接

[root@server1 fdfs]# ln -s /data/fastdfs/storage/data /data/fastdfs/storage/data/M00
[root@server1 fdfs]# ll /data/fastdfs/storage/data/M00

配置mod_fastDfs.config:
base_path=/data/fastdfs/storage      #保存日志目录
tracker_server=10.10.10.124:22122 #tracker 服务器的 IP 地址以及端口号
storage_server_port=23000 #storage 服务器的端口号
group_name=group1 #当前服务器的 group 名
url_have_group_name = true #文件 url 中是否有 group 名
store_path_count=1 #存储路径个数,需要和 store_path 个数匹配
store_path0=/data/fastdfs/storage #存储路径
http.need_find_content_type=true # 从文件 扩展 名查 找 文件 类型 ( nginx 时 为true)
group_count = 1 #设置组的个数
 启动存储服务器上的nginx时确报了下面的错误:
ngx_http_fastdfs_process_init pid=17609
[2014-12-10 11:52:07] ERROR - file: ini_file_reader.c, line: 315, include file "http.conf" not exists, line: "#include http.conf" 解决方案:
FDFS安装包的conf目录下,有几个配置文件,把http.conf,mime.types,拷贝到/etc/fdfs/下,http.conf里有
个配置应该是token验证的功能,如果你要打开,应该把路径配置正确

测试:

[root@mobancentos70 data]# fdfs_upload_file /etc/fdfs/client.conf 1.png
group1/M00/00/00/rBQN5lhI0VeAOOWNAAVg32hqxR4098.png

http://172.20.13.230/group1/M00/00/00/rBQN5lhI0VeAOOWNAAVg32hqxR4098.png

附录:

在整个环境搭建过程中遇到一些问题,在此提交分享,供大家参考。

1、 在Storage服务器上启动Nginx时出现 ERROR - file: /home/hadoop/dev/fastdfs/fastdfs-nginx-module/src/common.c, line: 103, section: group1, you must set parameter: group_name!

问题原因:在配置mod_fastdfs.conf文件时要保证group_count=2的个数与下面配置的[group*]个数相一致。

2、 安装GraphicsMagick进行配置时出现错误 configure: error: libltdl is required by modules build 问题原因:没有安装libltdl,通过yum install

-ylibtoollibtool-devel安装后再重新

3、 java客户端上传文件时出现错误 recvcmd: 100 is not correct, expect cmd: 10

问题原因:版本问题,下载1.24版本的即可。

4、 通过浏览器方式缩略图是出现

gm convert: Request did not return an image.错误。

问题原因:没有安装libjpeg和libpng包,导致在GM处理图时出现错误。安装libjpeg和libpng后重新安装GraphicsMagick即可。

5、 安装FastDFS在 编译时出现

/usr/local/lib/libfastcommon.so: undefined reference

to sqrt' /usr/local/lib/libfastcommon.so: undefined reference

tocos'错误

问题原因:libfastcommon版本的问题,下载旧版本,重新安装,然后在编译FastDFS即可。

FastDFS+Nginx安装配置的更多相关文章

  1. Nginx安装配置(转)

    Nginx 安装配置 Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/ ...

  2. Nginx安装配置PHP(FastCGI)环境的教程

    这篇是Nginx安装配置PHP(FastCGI)环境的教程.Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用. 一.什么是 FastCGI F ...

  3. Nginx安装配置与HelloWorld

    <深入理解Nginx>阅读与实践(一):Nginx安装配置与HelloWorld 最近在读陶辉的<深入理解Nginx:模块开发与架构解析>,一是想跟着大牛练练阅读和编写开源代码 ...

  4. Nginx 安装 配置 使用

    Nginx 安装 配置 使用 基本的HTTP服务器特性 处理静态文件,索引文件以及自动索引:打开文件描述符缓存(缓存元数据和文件描述符,下一次可以直接从内存找到数据或者文件的位置): 使用缓存加速反向 ...

  5. VMware Linux 下 Nginx 安装配置 - nginx.conf 配置 [负载两个 Tomcat] (三)

    首先启动Nginx 1. 相关浏览 两个 Tomcat 配置:  VMware Linux 下 Nginx 安装配置 - Tomcat 配置 (二) Nginx 安装配置启动: VMware Linu ...

  6. VMware Linux 下 Nginx 安装配置 - Tomcat 配置 (二)

    准备工作 相关浏览: VMware Linux 下 Nginx 安装配置 (一) 1. 选在 /usr/local/ 下创建 softs 文件夹,通过 ftp 命令 把 apache-tomcat-7 ...

  7. Hearbeat + Nginx 安装配置

    Hearbeat + Nginx 安装配置 实验环境 两台主机:Linux Centos 6.5 32位 主 服务端:Hearbeat + Nginx eth0:192.168.1.160(公网) e ...

  8. Nginx安装配置|Nginx反向代理|Nginx支持HTTPS|Nginx重定向

    Nginx安装配置 可以直接看到最下面的HTTPS. Nginx安装 我的系统如下: No LSB modules are available. Distributor ID: Ubuntu Desc ...

  9. puppet 3+Unicorn+Nginx安装配置

    puppet 3+Unicorn+Nginx安装配置 2014-08-15 10:58 酒瓶不倒 酒瓶不倒的博客 字号:T | T 一键收藏,随时查看,分享好友! Unicorn 效率要比 Webri ...

随机推荐

  1. linux下执行java类(运行java定时器)

    假如有一个定时器TimerTest.java import java.io.IOException; import java.util.Timer; public class TimerTest { ...

  2. SpringMvc返回报文形式的控制-验证方法: JSON or HTML or XML

    首先,请求通过accept请求头声明了支持的返回格式 然后,框架根据该请求头和代码实现(注解)选择了对应的MessageConverter处理返回! 一.验证过程 1.返回html 1.1.请求组装 ...

  3. Bootstrap 栅格系统简单整理

    Bootstrap内置了一套响应式.移动设备优先的流式栅格系统,随着屏幕设备或视口(viewport)尺寸的增加,系统会自动分为最多12列. 总结一下我近期的学习Bootstrap的一些理解: 一.. ...

  4. NHibernate从入门到精通系列(1)——NHibernate概括

    内容摘要 NHibernate简介 ORM简介 NHibernate优缺点 一.NHibernate简介 什么是?NHibernate?NHibernate是一个面向.NET环境的对象/关系数据库映射 ...

  5. Mysql启动时提示:Another MySQL daemon already running with the same unix socket.

    场景:vmvare虚拟机.centos7.mysql5.7 解决: mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak 参考: htt ...

  6. 改变textField的placeholder的颜色和位置

    重写UItextField的这个方法,用其他的textField继承自这个父类 - (void) drawPlaceholderInRect:(CGRect)rect { [[UIColor blue ...

  7. python--Selectors模块/队列

    Selectors模块/队列 一 Selectors模块 IO多路复用实现机制 Win: select Linux:select(效率低)  poll  epoll(最好)默认选择epoll sele ...

  8. 云如何让App开发更简单?

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 互联网"下半场",移动App开发对于质量.速度的要求更加苛刻.4月初,腾讯云正式上线移动开发平台MobileLine,借 ...

  9. Python处理Excel生成CSV文档

    Python是一种解释型的.动态数据类型的.面向对象的高级程序设计语言.拥有丰富的处理数据和文本类库,并且得益于它是一种解释型的语言,在程序修改和功能扩展上,可以很容易做到大规模的调整.综合考虑Pyt ...

  10. JS继承的一些见解

    JS继承的一些见解 js在es6之前的继承是五花八门的.而且要在项目中灵活运用面向对象写法也是有点别扭,更多的时候还是觉得面向过程的写法更为简单,效率也高.久而久之对js的继承每隔一段时间就会理解出现 ...