由于余老师在 V4.05 以后的版本就把内置 HTTP服务去掉了,所以就算这篇你测试上传成功了,你也访问不了。
推荐大家结合 Nginx 使用 fastdfs-nginx-module 模块,

搭建好fastdfs 系统后 就可以搭建web访问功能了。

大体思路有以下两种
1.直接安装nginx关于fastdfs集合的扩展模块  fastdfs-nginx-module  
    或者直接安装apache关于fastdfs集合的扩展模块  fastdfs-apache-module  
   fastdfs-nginx-module 的作用:
       在每一台storage上部署Nginx及 fastdfs-nginx-module扩展模块,如果当前storage节点找不到文件时
会向源storage主机发起redirect或proxy动作
 
2.安装web软件后,通过配置nginx实现了fastdfs-nginx-module的功能
第一种(推荐).
下载nginx  和   插件fastdfs-nginx-module-master.zip   这两个软件
(如果nginx已经安装好了,需要重新编译一遍,编译时把插件装上)
(如果nginx使用yum安装的,需要下载yum相同版本安装包,重新编译)
这里从头开始安装:
解压:
# tar -zxvf nginx-1.13.5.tar.gz
# unzip fastdfs-nginx-module-master.zip 
安装nginx和fastdfs插件:
 ./configure --prefix=/usr/local/nginx  --add-module=/home/packages/fastdfs-nginx-module-master/src
连续报错:
报错: the HTTP rewrite module requires the PCRE library.……
解决:yum install pcre-devel.x86_64
报错: the HTTP gzip module requires the zlib library.……
解决:yum install zlib-devel.x86_64

编译成功:

adding module in /home/packages/fastdfs-nginx-module-master/src
 + ngx_http_fastdfs_module was configured

Configuration summary
  + using system PCRE library
  + OpenSSL library is not used
  + using system zlib library
  nginx path prefix: "/usr/local/nginx"
  nginx binary file: "/usr/local/nginx/sbin/nginx"
  nginx modules path: "/usr/local/nginx/modules"
  nginx configuration prefix: "/usr/local/nginx/conf"
  nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
  nginx pid file: "/usr/local/nginx/logs/nginx.pid"
  nginx error log file: "/usr/local/nginx/logs/error.log"
  nginx http access log file: "/usr/local/nginx/logs/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"
继续安装:
# make
# make install
进入nginx安装目录,修改其配置文件:
# cd /usr/local/nginx/conf
# vi nginx.conf
增加以下内容:

 location /M00 {
            root /home/yuqing/fastdfs/data;
            ngx_fastdfs_module;
        }
新建一个软连接:
# ln -s /home/yuqing/fastdfs/data  /home/yuqing/fastdfs/data/M00
复制并修改mod_fastdfs.conf文件:
# cp mod_fastdfs.conf /etc/fdfs/
# vi /etc/fdfs/mod_fastdfs.conf
修改了这里:
tracker_server=10.0.0.42:22122
(复制这两个文件到fdfs配置文件,要不无法访问nginx)
(# cp /home/fastdfs-5.11/conf/http.conf /etc/fdfs/)
(# cp /home/fastdfs-5.11/conf/mime.types /etc/fdfs/)
重启nginx:
# /usr/local/nginx/sbin/nginx -s stop;
# /usr/local/nginx/sbin/nginx
报错:浏览器无法访问
查看nginx错误日志 如下
 ERROR - file: ini_file_reader.c, line: 631, include file "http.conf" not exists, line: "#include http.conf"
 ERROR - file: /home/packages/fastdfs-nginx-module-master/src/common.c, line: 163, load conf file "/etc/fdfs/mod_fastdfs.conf" fail, ret code: 2
解决:# cp /home/fastdfs-5.11/conf/http.conf /etc/fdfs/
 ERROR - file: shared_func.c, line: 968, file /etc/fdfs/mime.types not exist
解决:# cp /home/fastdfs-5.11/conf/mime.types /etc/fdfs/
访问nginx 成功
下面看一下 mod_fastdfs.conf文件:
# connect timeout in seconds
# default value is 30s
connect_timeout=2
连接超时时间
# network recv and send timeout in seconds
# default value is 30s
network_timeout=30
发送接受数据 超时时间
# the base path to store log files
base_path=/tmp
日志文件 位置
# if load FastDFS parameters from tracker server
# since V1.12
# default value is false
load_fdfs_parameters_from_tracker=true
是否从 tracket服务器读取信息
如果不从tracket服务器读取信息,以下三个参数生效
# storage sync file max delay seconds
# same as tracker.conf
# valid only when load_fdfs_parameters_from_tracker is false
# since V1.12
# default value is 86400 seconds (one day)
storage_sync_file_max_delay = 86400
      当load_fdfs_parameters_from_tracker设置为false时,本参数生效
同步文件最大延迟时间,与tracker.conf文件中参数相同
默认是一天
# if use storage ID instead of IP address
# same as tracker.conf
# valid only when load_fdfs_parameters_from_tracker is false
# default value is false
# since V1.13
use_storage_id = false
    是否使用storage_id 
# specify storage ids filename, can use relative or absolute path
# same as tracker.conf
# valid only when load_fdfs_parameters_from_tracker is false
# since V1.13
storage_ids_filename = storage_ids.conf
     storage_id的位置
# 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=10.0.0.42:22122
从tracket服务器读取信息,这个参数生效
tracket服务器地址、端口
# the port of the local storage server
# the default value is 23000
storage_server_port=23000
    本storage server监听端口
# the group name of the local storage server
group_name=group1
      group组名
# 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 = false
url链接中是否包含 组名
类似 /M00/00/00/xxx 和group1/M00/00/00/xxx
如果选择true 即包含组名,需要修改nginx配置文件
将  location /M00    改为     location /group1/M00 
# path(disk or mount point) count, default value is 1
# must same as storage.conf
store_path_count=1
      存储路径数量,必须和 storage.conf文件一致
# 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
     存储路径地址、必须和 storage.conf文件一致
# standard log level as syslog, case insensitive, value list:
### emerg for emergency
### alert
### crit for critical
### error
### warn for warning
### notice
### info
### debug
log_level=info
    日志级别
# set the log filename, such as /usr/local/apache2/logs/mod_fastdfs.log
# empty for output to stderr (apache and nginx error_log file)
log_filename=
     设置日志的名称,为空则记录到 http服务的错误日志里
# response mode when the file not exist in the local file system
## proxy: get the content from other storage server, then send to client
## redirect: redirect to the original storage server (HTTP Header is Location)
response_mode=proxy
当文件在本地不存在时怎样回应

  • proxy 代理,从其它存储服务器获取内容,然后发送给客户
  • redirect  重定向原始存储服务器的http头
# the NIC alias prefix, such as eth in Linux, you can see it by ifconfig -a
# multi aliases split by comma. empty value means auto set by OS type
# this paramter used to get all ip address of the local host
# default values is empty
if_alias_prefix=
????
多种别名用逗号分隔,空值表示自动设置系统类型
这个参数用于得到本机的所有ip
# use "#include" directive to include HTTP config file
# NOTE: #include is an include directive, do NOT remove the # before include
#include http.conf
   使用#include指令 包含http配置文件
    注意:#include  这是一个包含指令,不要删除 include前面的 #
# if support flv
# default value is false
# since v1.15
flv_support = true
   是否支持flv文件,默认不支持
# flv file extension name
# default value is flv
# since v1.15
flv_extension = flv
    flv文件的扩展名,默认是flv
# set the group count
# set to none zero to support multi-group on this storage server
# set to 0  for single group only
# groups settings section as [group1], [group2], ..., [groupN]
# default value is 0
# since v1.14
group_count = 0
设置组的数量
设置没有0 ,支持多个group组在这个存储服务器上
设置0 为只有一个组
如果服务器上多个组,组的设置 就像这样 [group1], [group2], ..., [groupN]
默认是0,一组
# group settings for group #1
# since v1.14
# when support multi-group on this storage server, uncomment following section
#[group1]
#group_name=group1
#storage_server_port=23000
#store_path_count=2
#store_path0=/home/yuqing/fastdfs
#store_path1=/home/yuqing/fastdfs1
   组1的设置
   若本存储服务器支持多组,取消下面的注释
# group settings for group #2
# since v1.14
# when support multi-group, uncomment following section as neccessary
#[group2]
#group_name=group2
#storage_server_port=23000
#store_path_count=1
#store_path0=/home/yuqing/fastdfs
组2的设置
若本存储服务器支持多组,取消下面的注释
二、直接使用 web访问
这个比较简单,只需要把web根目录指定到 fastdfs的存储目录就可以了
三、web访问fastdfs 的几种思路

3.1  只使用 组名
适用于图片量大、group组多、每个group组都有备份
访问地址类似于   picture.xxx.com/groupx/M00/……jpg
只需要一个域名;
上传图片后 将返回的值 直接+域名  保存为图片名 :picture.xxx.com/groupx/M00/……jpg
前端使用一个nginx做反向代理+负载均衡  配置如下:
upstream group1{
   server group1_storage1:80;
   server group1_storage2:80;
}
upstream group2{
   server group2_storage1:80;
   server group2_storage2:80;
}

location /group1/M00{
proxy_pass http://group1;
}
location /group2/M00{
proxy_pass http://group2;
}

注意:group1 和 group2 中 机器要正确配置 nginx.conf  storage.conf 和 mod_fastdfs.conf 文件

nginx.conf中

 location /group1/M00 {
            root /home/yuqing/fastdfs/data;
            ngx_fastdfs_module;
        }
 特别注意  mod_fastdfs.conf文件中  这两项 组名、url是否包含group名
group_name=
url_have_group_name =
3.2 只使用 域名 (已部署生产环境)
适用于图片较少,每个group组都是单机跑,没有备份的情况
访问地址类似于   picturex.xxx.com/M00/……jpg
需要多个域名;
上传图片后 将返回的值分开后 结合域名 生成图片名   picturex.xxx.com/M00/……jpg
前端使用一个nginx做反向代理  配置如下:
upstream group1{
   server group1_storage1:80;
}
upstream group2{
   server group2_storage1:80;
}

location /group1/M00{
proxy_pass http://group1;
}
location /group2/M00{
proxy_pass http://group2;
}

注意:group1 和 group2 中 机器要正确配置 nginx.conf  storage.conf

由于每组没有备份, mod_fastdfs.conf 也不用安装了
nginx.conf中

 location /group1/M00 {
            root /home/yuqing/fastdfs/data;
        }
3.3 域名和组名同时使用  
适用于图片量大、业务量多、group组多、每个group组都有备份
访问地址类似于   picturex.xxx.com/groupx/M00/……jpg
只需要一个域名;
上传图片后 将返回的值+改动域名  保存为图片名 :picturex.xxx.com/groupx/M00/……jpg
使用多个域名对应一个nginx  做反向代理+负载均衡  配置如下:

upstream group1{
   server group1_storage1:80;
   server group1_storage2:80;
}
upstream group2{
   server group2_storage1:80;
   server group2_storage2:80;
}

server {
        listen       80;
        server_name  picture1.xxx.com;
       ……

location /group1/M00{
proxy_pass http://group1;
}
location /group2/M00{
proxy_pass http://group2;
}
}
server {
        listen       80;
        server_name  picture2.xxx.com;
       ……
}

注意:group1 和 group2 中 机器要正确配置 nginx.conf  storage.conf 和 mod_fastdfs.conf 文件

nginx.conf中

 location /group1/M00 {
            root /home/yuqing/fastdfs/data;
            ngx_fastdfs_module;
        }
 特别注意  mod_fastdfs.conf文件中  这两项 组名、url是否包含group名
group_name=
url_have_group_name =

web访问 FastDFS 方法思路的更多相关文章

  1. Web开发基本准则-55实录-Web访问安全

    Web开发工程师请阅读下面的前端开发准则,这是第一部分,强调了过去几年里我们注意到的Web工程师务须处理的Web访问安全基础点.尤其是一些从传统软件开发转入互联网开发的工程师,请仔细阅读,不要因为忽视 ...

  2. 机器数据的价值 - Web 访问日志和数据库审计日志

    计算机数据 大量的数据流,不断增长的来源,蕴含着巨大的价值 在 Splunk,我们大量谈及计算机数据.这些数据是指在数据中心.“物联网”和互联设备世界中运行的所有系统产生的数据.其中包括支撑组织的应用 ...

  3. IIS6.0服务器搭建网站无法访问解决方法

    IIS6.0服务器搭建网站无法访问解决方法     IIS6.0服务器搭建网站无法访问解决方法很多朋友在用IIS6架网站的时候遇到不少问题,而这些问题有些在过去的IIS5里面就遇到过,有些是新出来的, ...

  4. 此项目的默认Web访问模式设置为文件共享, 但是无法从路径(此为转贴)

    故障现象: 当你打开ASP.NET Web项目时,如果出现这样的错误提示:提示窗口标题: Web访问失败提示内容: 此项目的默认Web访问模式设置为文件共享, 但是无法从路径“...”打开“...”处 ...

  5. OSX 10.8+下开启Web 共享 的方法

    MENU Home Archives About SUBSCRIBE ☰MENU OSX 10.8+ Mountain Lion 下开启 Web Sharing(Web 共享)的方法 JUL 28, ...

  6. OSX 10.8+下开启Web 共享 的方法

    MENU Home Archives About SUBSCRIBE ☰MENU OSX 10.8+ Mountain Lion 下开启 Web Sharing(Web 共享)的方法 JUL 28, ...

  7. 什么是Servlet(原理,从访问到方法)

    Servlet简介 Servlet是SUN公司提供的一门用于开发动态WEB资源的技术.SUN公司在其API中提供了一个Servlet接口,用户若想开发一个动态WEB资源(即开发一个Java程序向浏览器 ...

  8. Java Web工程搭建方法

    搭建一个简单的Web工程主要是以下几步: 一.下载所需工具 ①java   ②eclipse  ③tomcat 注意:java与eclipse版本不匹配(32位或者64位),会导致eclipse启动时 ...

  9. AngularJS使用OData请求ASP.NET Web API资源的思路

    本篇整理AngularJS使用OData请求ASP.NET Web API资源的思路. 首先给ASP.NET Web API插上OData的翅膀,通过NuGet安装OData. 然后,给control ...

随机推荐

  1. 世界上最流行的版本控制系统——Git

    版本控制系统,也就是VCS(Version Control System),可以说是程序员必备的工具.那么它到底是什么,有什么作用呢? 举个例子,如果你想查看你所开发的软件在一个月之前的模样,同时还想 ...

  2. AVR单片机教程——蜂鸣器

    本文隶属于AVR单片机教程系列.   引子 定时/计数器(简称定时器)是单片机编程中至关重要的一部分,再简单的单片机也会带有定时器. 也许你会觉得我们已经在delay函数中接触过定时器了,然而并不是, ...

  3. Elasticsearch 开箱指南

    内容概要 ES 基础介绍,重点是其中的核心概念. 基础 API 实践操作. 1. 基础介绍 Elasticsearch (ES) 是一个数据库,提供了分布式的.准实时搜索和分析. 基于 Apache ...

  4. 「 从0到1学习微服务SpringCloud 」13 断路器Hystrix

    背景与功能 在微服务架构中,很多情况下,各个服务之间是相互依赖,一个服务可能会调用了好几个其他服务,假设其中有一个服务故障,便会产生级联故障,最终导致整个系统崩溃无法使用(这称为雪崩效应),Sprin ...

  5. ubuntu文件操作mkdir cp mv rm ln

    pwd:显示当前目录 date:显示当前日期 cal:显示日历 ls:列出目录内容 cd:改变当前工作目录 ‘.’:代表工作目录 ‘..’:代表工作目录父目录 进入当前目录的父目录:cd /home ...

  6. Photoshop 2020安装教程

    首先来看看新增功能 [Photoshop 2020新增功能] 1.ipad和云文档 2.预设改进 3.新对象选择工具 4.转换行为一致 5.改进的属性面板 6.智能对到图层 7.增强的转换变形. 需要 ...

  7. xpath写法大全(适用于selenium、robotframework)

    1.//input[contains(@id, 'txttags')] 定位出来是个ID,但是ID后面的“102”是个随机数,所以用定位ID的方法就不行了,用firepath生成的xpath也会包括这 ...

  8. php--->单例模式封装mysql操作类

    php 单例模式封装mysql操作类 单例模式的必要条件(三私一公) 私有的成员属性--防止类外引入这个存放对象的属性 私有的构造方法--为了防止在类外使用new关键字实例化对象 私有的克隆方法--为 ...

  9. nmap详解之基础概述

    概述 nmap是一个网络探测和安全扫描程序,系统管理者和个人可以使用这个软件扫描大型的网络,获取那台主机正在运行以及提供什么服务等信息.nmap支持很多扫描技术,例如:UDP.TCP connect( ...

  10. SpringCloud与微服务Ⅶ --- Feign负载均衡

    官方文档:https://projects.spring.io/spring-cloud/spring-cloud.html#spring-cloud-feign 一.Feign是什么 Feign是一 ...