客户端通过storage服务器下载 文件
GitHub 下载 fastdfs-nginx模块 https://github.com/happyfish100
首先需要安装 fastDFS https://blog.csdn.net/u014749668/article/details/81291254
模块代码是给nginx编译使用的,不是单独编译用
1、 ./configure –with-zlib=… –with-openssl=… –with-pcre=…
–add-module=fastdfs模块/src
2、make
3、sudo make install
4、sudo niginx 启动nginx
这个时候nginx的worker线程没有启动起来,nginx不能正常工作
5、排查错误 去nginx log目录查看log
原因是etc/fdfs目录下面没有这个文件 —–将模块src里面的这个文件拷贝到etc/fdfs里面
这个文件在fastdfs-nginx模块源码src里面
sudo cp mod_fastdfs.conf /etc/fdfs/ -fr
然后在重启nginx 服务器 sudo nginx -s reload 你会看到 找不这个文件 http.conf
这个文件在fastdfs 源码目录里面的 conf文件夹里面
sudo cp http.conf /etc/fdfs/ -fr
然后在重启nginx 服务器 sudo nginx -s reload 你会看到 找不这个文件 mime.types
这个文件在fastdfs 源码目录里面的 conf文件夹里面
sudo cp mime.types /etc/fdfs/ -fr
到这里编译基本搞定 现在去 写配置文件
写之前 查看log 要去/usr/locl/nginx/logs/ 目录里面
使用 tail -f err.log 动态查看文件
到这里编译基本搞定 现在去 写配置文件
如果出现 你查看进程发现出现两次 master 进程 然后过几秒 只剩下一个master进程 那是应为 你storage 里面的tracker.conf 配置文件里面的 tracker_server 这个地方的地址写得与module_fdfs.conf文件里面的tracker server 的地址不一直 。接下来,我会在后面指出。。。。
出现这个错误的就是配置文件的问题。。。。
其实说白了 ,就是要把这个配置文件module_fdfs.conf 与storage.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=/home/fastdfs/fmodule
# if load FastDFS parameters from tracker server
# since V1.12
# default value is false
#是否从tracker 服务器上加载配置信息
load_fdfs_parameters_from_tracker=true
# 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
# 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
# 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
# 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 服务器的地址 这个解决两次master
#tracker_server=tracker:22122
tracker_server=127.0.0.1:22122
# the port of the local storage server
# the default value is 23000 只需要填端口 不需要填ip
storage_server_port=23000
# the group name of the local storage server 当前storage服务器提供服务的组
group_name=group1
# 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
http://192.168.111.113/group1/M00/00/00/aadfa
通过URL访问nginx下载文件,包含组名
http://192.168.111.113/M00/00/00/aadfa
不包含组名,URL信息
建议使用组名,可以马上确定哪个组
# path(disk or mount point) count, default value is 1
# must same as storage.conf 存储路径的数量 和storage的配置文件里面的是一样的
store_path_count=1
# 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 和storage的配置文件里面的是一样的
# 要根据这个路径去查找文件
store_path0=/home/yuqing/fastdfs
#store_path1=/home/yuqing/fastdfs1
# 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=
# 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
# 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=
# use "#include" directive to include HTTP config file
# NOTE: #include is an include directive, do NOT remove the # before include
#include http.conf
# if support flv
# default value is false
# since v1.15
flv_support = true
# flv file extension name
# default value is flv
# since v1.15
flv_extension = 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
# 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
# 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
最后在配置nginx.conf
location /M00 {
root /home/yuqing/fastdfs/data;
ngx_fastdfs_module;
}
注意,如果URL不带组名,可以使用以上配置,带组名
location /group1/M00 {
ngx_fastdfs_module;
}