博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx 整合 FastDFS 实现文件服务器
阅读量:5061 次
发布时间:2019-06-12

本文共 5680 字,大约阅读时间需要 18 分钟。

原文地址:

博客地址:

一、前言

本篇衔接内容进行讲解,上篇文章我们实现了图片上传的功能,但是无法通过 http 进行访问,本篇将解决该问题。

建议读者先浏览再继续浏览本篇文章。

二、安装

2.1 下载 fastdfs-nginx-module

Nginx 整合 FastDFS 需要依赖 fastdfs-nginx-module 模块,我们需要将其下载下来。

git clone https://github.com/happyfish100/fastdfs-nginx-module.git

查看下载文件:

[root@fastdfs ~]# pwd/root[root@fastdfs ~]# lltotal 1048drwxr-xr-x. 11 root root     270 Oct 16 22:19 fastdfsdrwxr-xr-x.  4 root root      59 Oct 17 02:56 fastdfs-nginx-moduledrwxr-xr-x.  6 root root     147 Oct 16 22:22 libfastcommon-rw-r--r--.  1 root root   49608 Oct 17 01:51 test.jpg

2.2 安装 nginx/fastdfs-nginx-module

笔者通过 yum 方式安装 nginx,具体操作可以访问 。

现在出现一个尴尬的问题:nginx 安装第三方模块需要通过 configure 命令,因此我们还得下载 nginx 源码对第三方模块进行编译安装。

由于笔者已经提前安装 nginx ,键入命令:

[root@fastdfs ~]# nginx -Vnginx version: nginx/1.14.0built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) built with OpenSSL 1.0.2k-fips  26 Jan 2017TLS SNI support enabledconfigure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'

可以看到 nginx 的版本以及安装好的 nginx 模块,我们需要下载 nginx/1.14.0 的源码:

wget http://nginx.org/download/nginx-1.14.0.tar.gztar -zxvf nginx-1.14.0.tar.gzcd nginx-1.14.0

进入到 nginx-1.14.0 目录后,我们就看到 configure 命令了。

通过源码编译 nginx 模块需要安装依赖包(如果之前通过源码方式安装 nginx 可以忽略该步骤):

yum install pcreyum install pcre-develyum install zlibyum install zlib-develyum install opensslyum install openssl-devel

安装完成后,我们现在需要拼接执行命令。

./configure 已安装的模块 --add-module=/root/fastdfs-nginx-module/src,最终的结果如下:

./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie' --add-module=/root/fastdfs-nginx-module/src

执行上边的命令,编译好之后再执行 make 即可。注意,不需要 make install

最后替换 nginx 命令:

cp /usr/sbin/nginx /usr/sbin/nginx.bakcp ./objs/nginx /usr/sbin/

三、配置

3.1 修改 fastdfs-nginx-module 配置文件

复制 mod_fastdfs 配置文件:

cp /root/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

修改 vim /etc/fdfs/mod_fastdfs.conf:

base_path=/data/fastdfs/tmptracker_server=192.168.10.110:22122group_name=lighturl_have_group_name = truestore_path0=/data/fastdfs/storage

注意:请确保 /etc/fdfs 有如下 .conf 文件:

[root@fastdfs fdfs]# pwd/etc/fdfs[root@fastdfs fdfs]# lltotal 84-rw-r--r--. 1 root root  1462 Oct 17 01:50 client.conf-rw-r--r--. 1 root root  1461 Oct 16 22:26 client.conf.sample-rw-r--r--. 1 root root   955 Oct 17 04:34 http.conf-rw-r--r--. 1 root root 31172 Oct 17 04:35 mime.types-rw-r--r--. 1 root root  3744 Oct 17 04:22 mod_fastdfs.conf-rw-r--r--. 1 root root  7976 Oct 17 01:57 storage.conf-rw-r--r--. 1 root root  7978 Oct 16 22:26 storage.conf.sample-rw-r--r--. 1 root root   105 Oct 16 22:26 storage_ids.conf.sample-rw-r--r--. 1 root root  7442 Oct 16 23:34 tracker.conf-rw-r--r--. 1 root root  7441 Oct 16 22:26 tracker.conf.sample

缺少配置文件,可能会造成后边启动 nginx 失败,如果根据笔者介绍的步骤,应该不会出现缺漏文件的情况。

3.2 修改 nginx 配置文件

vim /etc/nginx/conf.d/default.conf ,新增 location 配置:

server {        server_name  192.168.10.110;        location /light/M00 {        root /data/fastdfs/storage/data;        ngx_fastdfs_module;    }        ...}

保存文件,重启 nginx :

nginx -s reload

四、测试

打开浏览器访问 (上篇文章中笔者上传图片后 fdfs 返回的 url 地址),显示效果:

image

图片正常访问,大功告成。

如果访问不通,检查是否是防火墙问题,或者查看 nginx 日志。

转载于:https://www.cnblogs.com/moonlightL/p/9815079.html

你可能感兴趣的文章
scratch少儿编程第一季——06、人在江湖混,没有背景怎么行。
查看>>
【贪心+DFS】D. Field expansion
查看>>
C# Async与Await的使用
查看>>
Mysql性能调优
查看>>
iOS基础-UIKit框架-多控制器管理-实例:qq界面框架
查看>>
IOS-每个程序员的编程之路上都应该看这11本书
查看>>
自定义tabbar(纯代码)
查看>>
小程序底部导航栏
查看>>
ibatis学习笔记
查看>>
18-ES6(1)
查看>>
poj1611 简单并查集
查看>>
Ubuntu 14.04下安装CUDA8.0
查看>>
跨平台开发 -- C# 使用 C/C++ 生成的动态链接库
查看>>
C# BS消息推送 SignalR介绍(一)
查看>>
WPF星空效果
查看>>
WPF Layout 系统概述——Arrange
查看>>
PIGOSS
查看>>
几款Http小服务器
查看>>
iOS 数组排序
查看>>
第三节
查看>>