#备注:以下nginx-1.10.3源码目录根据nginx版本号不同会有相应的变化,以nginx版本号为准
#一、安装 Nginx 和 fastdfs-nginx-module
1,安装 Nginx 请看:Nginx安装教程 2,下载fastdfs-nginx-module模块,这里是通过wget下载:

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

3,解压fastdfs-nginx-module_v1.16.tar.gz

tar -zxvf fastdfs-nginx-module_v1.16.tar.gz

4,将解压后的文件夹移动到nginx源码文件夹下

mv fastdfs-nginx-module /usr/local/nginx-1.10.3/

5,配置 nginx 安装,加入fastdfs-nginx-module模块。这是和普通 Nginx 安装不一样的地方,因为加载了模块。
运行nginx -V命令查看已经安装的nginx模块(configure arguments:后面表示当前已经安装的nginx模块)

/usr/local/nginx/sbin/nginx -V

NGINX测试页面html nginx 测试配置_nginx


红色圈圈内是当前nginx已经安装的模块

6,配置Nginx的参数,添加fastdfs-nginx处理模块

// 此段代码根据自己nginx已经安装的模块进行复制,在已经安装好的模块后面添加 --add-module=fastdfs-nginx-module/src/,以下是我的nginx已经安装的模块进行安装的,每个人安装的模块会不一样
./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-pcre=/usr/local/src/pcre-8.37 --with-http_ssl_module --add-module=ngx_image_thumb-master --add-module=fastdfs-nginx-module/src/

7,编译

make

NGINX测试页面html nginx 测试配置_nginx_02


但是,万万没想到,报错啦! 编译中断。

原因:编译安装nginx的fastdfs插件的头文件没有找到,由于编译nginx时候系统会到/usr/local/include,而编译安装fastdfs-nginx-module时则默认保存在了/usr/include目录。

修复:

ln -s /usr/include/fast* /usr/local/include/

接下来重新编译就可以通过了,编译成功后运行nginx源码文件夹下的/usr/local/nginx-1.10.3/objs/nginx -V查看nginx安装的模块

/usr/local/nginx-1.10.3/objs/nginx -V

NGINX测试页面html nginx 测试配置_nginx配置fastdfs访问_03

8,备份,安装
备份之前目录下的/usr/local/nginx/sbin/nginx文件,拷贝新编译的/usr/local/nginx-1.10.3/objs/nginx到/usr/local/nginx/sbin/nginx目录下,到此fastdfs-nginx-module模块安装完成。

#二、配置 fastdfs-nginx-module 和 Nginx
1,拷贝mod-fastdfs.conf到/etc/fdfs文件目录下,配置mod-fastdfs.conf

cp /usr/local/nginx-1.10.3/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
vim /etc/fdfs/mod_fastdfs.conf

修改mod-fastdfs.conf配置只需要修改这三个地方就行了,其他不需要也不建议改变。

# FastDFS tracker_server can ocur more than once, and tracker_server format is
#  "host:port", host can be hostname or ip address
# valid only when load_fdfs_parameters_from_tracker is true
tracker_server=192.168.2.129:22122

# if the url / uri including the group name
# set to false when uri like /M00/00/00/xxx
# set to true when uri like ${group_name}/M00/00/00/xxx, such as group1/M00/xxx
# default value is false
url_have_group_name = true

# store_path#, based 0, if store_path0 not exists, it's value is base_path
# the paths must be exist
# must same as storage.conf
store_path0=/home/yuqing/fastdfs
#store_path1=/home/yuqing/fastdfs1

接着我们需要把fastdfs-5.05下面的配置中还没有存在/etc/fdfs中的拷贝进去

cd /usr/local/fastdfs-5.05/conf/
cp anti-steal.jpg http.conf mime.types /etc/fdfs/
cd /etc/fdfs/

NGINX测试页面html nginx 测试配置_NGINX测试页面html_04

2,配置 Nginx。编辑nginx.conf文件

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

在配置文件中加入:

location /group1/M00 {
    root /home/yuqing/fastdfs/data/; // 文件上传存放目录
    ngx_fastdfs_module;
}

NGINX测试页面html nginx 测试配置_fastdfs集成nginx访问_05


启动 Nginx ,会打印出fastdfs模块的pid,看看日志是否报错,正常不会报错的

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

NGINX测试页面html nginx 测试配置_Nginx _06

3,上传文件进行访问测试

上传文件

NGINX测试页面html nginx 测试配置_nginx配置fastdfs访问_07


访问测试

NGINX测试页面html nginx 测试配置_fastdfs集成nginx访问_08


成功啦!!! 返回文件信息及上传后的文件 HTTP 地址,你打开浏览器访问一下试试

我这里配置的是81端口访问,80端口已经被占用了,可以根据自己实际情况配置访问端口(nginx默认端口是80),如果没有特定配置端口的话把端口号改为上面访问的端口号改为80就可以了

#三、FastDFS通过java上传文件到服务器:点击进入

#总结一下
这篇文章一步一步的讲了通过 Nginx 结合fastdfs-nginx-module模块来进行上传测试及下载工作,当然这也需要结合上一篇 Tracker 和 Storage 服务来进行,这算是整体进行了 FastDFS 的安装与配置,分布式的配置也几乎和这没差别,只不过是增加了不同组和多台服务器,有机会希望你亲自试试。