FastDFS之——Web访问 FastDFS 出现的问题及解决方案
继续安装:
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
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数软件测试工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
于 picturex.xxx.com/M00/……jpg
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数软件测试工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-G8Nd13Ok-1712868592545)]
[外链图片转存中…(img-Ax8COCL7-1712868592545)]
[外链图片转存中…(img-RxURlxGA-1712868592546)]
[外链图片转存中…(img-wEsTPmXa-1712868592546)]
[外链图片转存中…(img-2nO1BrMM-1712868592547)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-Va0bFvYx-1712868592547)]
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!