赞
踩
官方解释:FastDFS 是一个开源的高性能分布式文件系统。它的主要功能包括:文件存储、文件同步和文件访问(文件上传和文件下载),它可以解决高容量和负载均衡问题。FastDFS应该能满足图片分享网站、视频分享网站等以文件为基础服务的网站的要求。
FastDFS有两个角色:tracker和storage。跟踪器负责文件访问的调度和负载均衡。storage 存储文件,其功能是文件管理,包括:文件存储,文件同步,提供文件访问接口。它还管理元数据,这些元数据是表示文件键值对的属性。例如:width=1024,键为“width”,值为“1024”。
跟踪器和存储包含一个或多个服务器。跟踪器或存储集群中的服务器可以随时加入或移除集群,而不影响在线服务。跟踪器集群中的服务器是对等的。
按文件卷/组组织的存储服务器以获得高容量。存储系统包含一个或多个卷,这些卷之间的文件是独立的。整个存储系统的容量等于所有卷容量的总和。一个文件卷包含一台或多台存储服务器,这些服务器之间的文件是相同的。一个文件卷中的服务器相互备份,所有这些服务器都是负载均衡的。将存储服务器添加到卷时,该卷中已经存在的文件会自动复制到这台新服务器上,复制完成后,系统会将这台服务器在线切换为提供存储服务。
当整个存储容量不足时,您可以添加一个或多个卷来扩展存储容量。为此,您需要添加一台或多台存储服务器。
文件的标识由两部分组成:卷名和文件名。
个人理解:FastDFS 是一个开源的高性能分布式文件系统。FastDFS能满足图片分享网站、视频分享网站等以文件为基础服务的网站的要求。简单说就是为图片分享网站、视频分享网站等以文件为基础服务的网站服务。
优势:对于用户来说,不用管内部图片、视频存放位置。它能够自动存放好,并且反馈一个URL地址供你调用。
角色 | 名词 | 功能 |
---|---|---|
tracker | 跟踪器 | 负责文件访问的调度和负载均衡 |
storage | 存储 | 文件管理,包括:文件存储,文件同步,提供文件访问接口。它还管理元数据,这些元数据是表示文件键值对的属性 |
系统:centos 7
内核:3.10.0-1160.62.1.el7.x86_64
防火墙:
方式1)关闭防火墙
systemctl stop firewalld
(关闭firewalld )
方式2)开启防火墙,开放80端口(我是80,自行选择)
systemctl start firewalld
(开启firewalld )
firewall-cmd --zone=public --add-port=80/tcp --permanent
(添加开放端口)
firewall-cmd --reload
(加载配置)
firewall-cmd --zone= public --query-port=80/tcp
(查看端口是否开启)
ping www.baidu.com
可以很粗暴的认为,能ping通有网
那就能下载,没网的服务器就找到有网的机器,下载好了再上传吧。
先创建一个文件夹,把所有包都放在一个目录下,好找。
[root@lsigzmdun5 ~]# cd /opt/
[root@lsigzmdun5 opt]# ls
avalokita bcm-agent bsm-agent hosteye rh
[root@lsigzmdun5 opt]# mkdir fastdfs_package # 创建包存储文件夹
[root@lsigzmdun5 opt]# cd fastdfs_package/
[root@lsigzmdun5 fastdfs_package]#
下载四个官网软件包:
fastdfs-5.04
libfastcommon-1.0.43.zip
fastdfs-nginx-module-1.20.zip
nginx-1.20.2.tar.gz
传完如下:
[root@lsigzmdun5 fastdfs_package]# ls
fastdfs-5.04.zip fastdfs-nginx-module-1.20.zip libfastcommon-1.0.43.zip nginx-1.20.2.tar.gz
yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel gcc zip unzip libevent
[root@lsigzmdun5 fastdfs_package]# unzip libfastcommon-1.0.43.zip #解压
Archive: libfastcommon-1.0.43.zip
c8c75666cf9b17adaf58883174ddd8631d628c01
creating: libfastcommon-1.0.43/
... ...
[root@lsigzmdun5 fastdfs_package]# cd libfastcommon-1.0.43 #进入目录
[root@lsigzmdun5 libfastcommon-1.0.43]# ./make.sh && ./make.sh install #编译安装
cc -Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -g -O3 -c -o hash.o hash.c
cc -Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -g -O3 -c -o chain.o chain.c
cc -Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -g -O3 -c -o shared_func.o shared_func.c
cc -Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -g -O3 -c -o ini_file_reader.o ini_file_reader.c
... ...
一般没有报错,直接执行就好
[root@lsigzmdun5 fastdfs_package]# unzip fastdfs-5.04.zip #解压 Archive: fastdfs-5.04.zip f19daf51eeb021f0fcaa8770d49f76551a436cb1 creating: fastdfs-5.04/ inflating: fastdfs-5.04/COPYING-3_0.txt inflating: fastdfs-5.04/HISTORY inflating: fastdfs-5.04/INSTALL inflating: fastdfs-5.04/README.md creating: fastdfs-5.04/client/ inflating: fastdfs-5.04/client/Makefile.in ... ... [root@lsigzmdun5 fastdfs_package]# cd fastdfs-5.04/ #进入目录 [root@lsigzmdun5 fastdfs-5.04]# ls client conf fastdfs.spec init.d make.sh README.md stop.sh test common COPYING-3_0.txt HISTORY INSTALL php_client restart.sh storage tracker [root@lsigzmdun5 fastdfs-5.04]# ./make.sh && ./make.sh install #编译安装 cc -Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -g -O -DDEBUG_FLAG -DOS_LINUX -DIOEVENT_USE_EPOLL -c -o ../common/fdfs_global.o ../common/fdfs_global.c -I../common -I/usr/include/fastcommon cc -Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -g -O -DDEBUG_FLAG -DOS_LINUX -DIOEVENT_USE_EPOLL -c -o tracker_proto.o tracker_proto.c -I../common -I/usr/include/fastcommon cc -Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -g -O -DDEBUG_FLAG -DOS_LINUX -DIOEVENT_USE_EPOLL -c -o ... ...
一般没有报错,直接执行
[root@lsigzmdun5 opt]# mkdir fastdfs #/opt/fastdfs 本次项目的总存储路径
[root@lsigzmdun5 opt]# mkdir -p /opt/fastdfs/client #client 端日志目录
[root@lsigzmdun5 opt]# mkdir -p /opt/fastdfs/storage/base /opt/fastdfs/storage/store #存储文件的路径
[root@lsigzmdun5 opt]# mkdir -p /opt/fastdfs/tracker/data /opt/fastdfs/tracker/log #跟踪器的文件路径
[root@lsigzmdun5 opt]# mkdir -p /opt/fastdfs/storage/base/data #存储文件的路径
[root@lsigzmdun5 opt]# mkdir -p /opt/fastdfs/storage/base/logs #存储文件的日志路径
[root@lsigzmdun5 opt]# mkdir -p /opt/fastdfs/nginx_mod #nginx模块路径
[root@lsigzmdun5 opt]# cd /etc/fdfs
[root@lsigzmdun5 fdfs]# ls
client.conf.sample storage.conf.sample tracker.conf.sample
[root@lsigzmdun5 fdfs]# cp tracker.conf.sample tracker.conf
[root@lsigzmdun5 fdfs]# cp storage.conf.sample storage.conf
[root@lsigzmdun5 fdfs]# cp client.conf.sample client.conf
[root@lsigzmdun5 fdfs]# ls
client.conf client.conf.sample storage.conf storage.conf.sample tracker.conf tracker.conf.sample
对于tracker.conf文件,只需要修改以下几项
base_path=/opt/fastdfs/tracker #修改文件存储路径
详细配置文件与说明如下:
[root@lsigzmdun5 fdfs]# cat tracker.conf|egrep -v "^$|^#" disabled=false bind_addr= port=22122 connect_timeout=30 network_timeout=60 base_path=/opt/fastdfs/tracker max_connections=256 accept_threads=1 work_threads=4 store_lookup=2 store_group=group2 store_server=0 store_path=0 download_server=0 reserved_storage_space = 10% log_level=info run_by_group= run_by_user= allow_hosts=* sync_log_buff_interval = 10 check_active_interval = 120 thread_stack_size = 64KB storage_ip_changed_auto_adjust = true storage_sync_file_max_delay = 86400 storage_sync_file_max_time = 300 use_trunk_file = false slot_min_size = 256 slot_max_size = 16MB trunk_file_size = 64MB trunk_create_file_advance = false trunk_create_file_time_base = 02:00 trunk_create_file_interval = 86400 trunk_create_file_space_threshold = 20G trunk_init_check_occupying = false trunk_init_reload_from_binlog = false trunk_compress_binlog_min_interval = 0 use_storage_id = false storage_ids_filename = storage_ids.conf id_type_in_filename = ip store_slave_file_use_link = false rotate_error_log = false error_log_rotate_time=00:00 rotate_error_log_size = 0 log_file_keep_days = 0 use_connection_pool = false connection_pool_max_idle_time = 3600 http.server_port=8080 http.check_alive_interval=30 http.check_alive_type=tcp http.check_alive_uri=/status.html
对于storage.conf文件,只需要修改以下几项
base_path=/opt/fastdfs/storage/base
store_path0=/opt/fastdfs/storage/store
tracker_server=106.12.115.19:22122
详细配置文件与说明如下:
[root@lsigzmdun5 fdfs]# cat storage.conf|egrep -v "^$|^#" disabled=false group_name=group1 bind_addr= client_bind=true port=23000 connect_timeout=30 network_timeout=60 heart_beat_interval=30 stat_report_interval=60 base_path=/opt/fastdfs/storage/base max_connections=256 buff_size = 256KB accept_threads=1 work_threads=4 disk_rw_separated = true disk_reader_threads = 1 disk_writer_threads = 1 sync_wait_msec=50 sync_interval=0 sync_start_time=00:00 sync_end_time=23:59 write_mark_file_freq=500 store_path_count=1 store_path0=/opt/fastdfs/storage/store subdir_count_per_path=256 tracker_server=106.12.115.19:22122 log_level=info run_by_group= run_by_user= allow_hosts=* file_distribute_path_mode=0 file_distribute_rotate_count=100 fsync_after_written_bytes=0 sync_log_buff_interval=10 sync_binlog_buff_interval=10 sync_stat_file_interval=300 thread_stack_size=512KB upload_priority=10 if_alias_prefix= check_file_duplicate=0 file_signature_method=hash key_namespace=FastDFS keep_alive=0 use_access_log = false rotate_access_log = false access_log_rotate_time=00:00 rotate_error_log = false error_log_rotate_time=00:00 rotate_access_log_size = 0 rotate_error_log_size = 0 log_file_keep_days = 0 file_sync_skip_invalid_record=false use_connection_pool = false connection_pool_max_idle_time = 3600 http.domain_name= http.server_port=8888
对于client.conf文件,只需要修改以下几项
base_path=/opt/fastdfs/client/
tracker_server=106.12.115.19:22122
详细配置文件与说明如下:
[root@lsigzmdun5 fdfs]# cat client.conf|egrep -v "^$|^#"
connect_timeout=30
network_timeout=60
base_path=/opt/fastdfs/client/
tracker_server=106.12.115.19:22122
log_level=info
use_connection_pool = false
connection_pool_max_idle_time = 3600
load_fdfs_parameters_from_tracker=false
use_storage_id = false
storage_ids_filename = storage_ids.conf
http.tracker_server_port=80
[root@lsigzmdun5 fdfs]# /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
[root@lsigzmdun5 fdfs]# ps -ef |grep fdfs
root 22737 1 0 23:48 ? 00:00:00 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
[root@lsigzmdun5 fdfs]# /usr/bin/fdfs_storaged /etc/fdfs/storage.conf
[root@lsigzmdun5 fdfs]# ps -ef |grep fdfs
root 22737 1 0 23:48 ? 00:00:00 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
root 25546 1 0 23:50 ? 00:00:00 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf
[root@lsigzmdun5 ~]# /opt/fastdfs_package/fastdfs-5.04/client/fdfs_test /etc/fdfs/client.conf upload /root/lyy.png #先要有/root/lyy.png,你要先上传对应目录 This is FastDFS client test program v5.04 Copyright (C) 2008, Happy Fish / YuQing FastDFS may be copied only under the terms of the GNU General Public License V3, which may be found in the FastDFS source kit. Please visit the FastDFS Home Page http://www.csource.org/ for more detail. [2022-12-10 00:03:45] DEBUG - base_path=/opt/fastdfs/client, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0 tracker_query_storage_store_list_without_group: server 1. group_name=, ip_addr=106.12.115.19, port=23000 group_name=group1, ip_addr=106.12.115.19, port=23000 storage_upload_by_filename group_name=group1, remote_filename=M00/00/00/wKgABGOTXGGAfL1OAAJx4dxdmjc672.png source ip address: 192.168.0.4 file timestamp=2022-12-10 00:03:45 file size=160225 file crc32=3697121847 example file url: http://106.12.115.19/group1/M00/00/00/wKgABGOTXGGAfL1OAAJx4dxdmjc672.png storage_upload_slave_by_filename group_name=group1, remote_filename=M00/00/00/wKgABGOTXGGAfL1OAAJx4dxdmjc672_big.png source ip address: 192.168.0.4 file timestamp=2022-12-10 00:03:46 file size=160225 file crc32=3697121847 example file url: http://106.12.115.19/group1/M00/00/00/wKgABGOTXGGAfL1OAAJx4dxdmjc672_big.png [root@lsigzmdun5 ~]# ll /opt/fastdfs/storage/store/data/00/00/ #文件存储位置 总用量 328 -rw-r--r-- 1 root root 160225 12月 10 00:03 wKgABGOTXGGAfL1OAAJx4dxdmjc672_big.png -rw-r--r-- 1 root root 49 12月 10 00:03 wKgABGOTXGGAfL1OAAJx4dxdmjc672_big.png-m -rw-r--r-- 1 root root 160225 12月 10 00:03 wKgABGOTXGGAfL1OAAJx4dxdmjc672.png -rw-r--r-- 1 root root 49 12月 10 00:03 wKgABGOTXGGAfL1OAAJx4dxdmjc672.png-m
[root@lsigzmdun5 ~]# cd /opt/fastdfs_package/ [root@lsigzmdun5 fastdfs_package]# ls fastdfs-5.04 fastdfs-nginx-module-1.20.zip libfastcommon-1.0.43.zip fastdfs-5.04.zip libfastcommon-1.0.43 nginx-1.20.2.tar.gz [root@lsigzmdun5 fastdfs_package]# unzip fastdfs-nginx-module-1.20.zip Archive: fastdfs-nginx-module-1.20.zip 396ffefbbb3a8c737226e9fdeb219e930c1e4372 creating: fastdfs-nginx-module-1.20/ inflating: fastdfs-nginx-module-1.20/HISTORY inflating: fastdfs-nginx-module-1.20/INSTALL creating: fastdfs-nginx-module-1.20/src/ inflating: fastdfs-nginx-module-1.20/src/common.c inflating: fastdfs-nginx-module-1.20/src/common.h inflating: fastdfs-nginx-module-1.20/src/config inflating: fastdfs-nginx-module-1.20/src/mod_fastdfs.conf inflating: fastdfs-nginx-module-1.20/src/ngx_http_fastdfs_module.c [root@lsigzmdun5 fastdfs_package]# cd fastdfs-nginx-module-1.20 [root@lsigzmdun5 fastdfs-nginx-module-1.20]# cp src/mod_fastdfs.conf /etc/fdfs/ [root@lsigzmdun5 fastdfs-nginx-module-1.20]# cd /etc/fdfs/ [root@lsigzmdun5 fdfs]# ls client.conf client.conf.sample mod_fastdfs.conf storage.conf storage.conf.sample tracker.conf tracker.conf.sample
对于client.conf文件,只需要修改以下几项
base_path=/opt/fastdfs/nginx_mod
tracker_server=106.12.115.19:22122
url_have_group_name = true
store_path0=/opt/fastdfs/storage/store/
详细配置文件与说明如下:
[root@lsigzmdun5 fastdfs_package]# cat mod_fastdfs.conf|egrep -v "^$|^#" connect_timeout=2 network_timeout=30 base_path=/opt/fastdfs/nginx_mod load_fdfs_parameters_from_tracker=true storage_sync_file_max_delay = 86400 use_storage_id = false storage_ids_filename = storage_ids.conf tracker_server=106.12.115.19:22122 torage_server_port=23000 group_name=group1 url_have_group_name = true store_path_count=1 store_path0=/opt/fastdfs/storage/store/ log_level=info log_filename= response_mode=proxy if_alias_prefix= flv_support = true flv_extension = flv group_count = 0
[root@lsigzmdun5 fastdfs_package]# tar -xf nginx-1.20.2.tar.gz
[root@lsigzmdun5 fastdfs_package]# ls
fastdfs-5.04 fastdfs-nginx-module-1.20 libfastcommon-1.0.43 nginx-1.20.2
fastdfs-5.04.zip fastdfs-nginx-module-1.20.zip libfastcommon-1.0.43.zip nginx-1.20.2.tar.gz
[root@lsigzmdun5 fastdfs_package]# ./configure --prefix=/opt/fastdfs_package/nginx-1.20.2 --add-module=/opt/fastdfs_package/fastdfs-nginx-module-1.20/src #配置
报错一
[root@lsigzmdun5 nginx-1.20.2]# make && make install #编译安装 make -f objs/Makefile make[1]: 进入目录“/opt/fastdfs_package/nginx-1.20.2” cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='"/etc/fdfs/mod_fastdfs.conf"' -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \ -o objs/src/core/nginx.o \ src/core/nginx.c cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused ... ... cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='"/etc/fdfs/mod_fastdfs.conf"' -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I /usr/local/include \ -o objs/addon/src/ngx_http_fastdfs_module.o \ /opt/fastdfs_package/fastdfs-nginx-module-1.20/src/ngx_http_fastdfs_module.c In file included from /opt/fastdfs_package/fastdfs-nginx-module-1.20/src/common.c:26:0, from /opt/fastdfs_package/fastdfs-nginx-module-1.20/src/ngx_http_fastdfs_module.c:6: /usr/include/fastdfs/fdfs_define.h:15:27: 致命错误:common_define.h:没有那个文件或目录 #include "common_define.h" ^ 编译中断。 make[1]: *** [objs/addon/src/ngx_http_fastdfs_module.o] 错误 1 make[1]: 离开目录“/opt/fastdfs_package/nginx-1.20.2” make: *** [build] 错误 2
解决一:
修改配置文件/opt/fastdfs_package/fastdfs-nginx-module-1.20/src/config
中的
ngx_module_incs="/usr/local/include "
CORE_INCS="$CORE_INCS /usr/local/include "
为
ngx_module_incs=“/usr/local/include /usr/include/fastcommon/ "
CORE_INCS=”$CORE_INCS /usr/local/include /usr/include/fastcommon/ "
文件前后文如下:
[root@lsigzmdun5 nginx-1.20.2]# cat /opt/fastdfs_package/fastdfs-nginx-module-1.20/src/config ... ... ngx_addon_name=ngx_http_fastdfs_module if test -n "${ngx_module_link}"; then ngx_module_type=HTTP ngx_module_name=$ngx_addon_name **ngx_module_incs="/usr/local/include /usr/include/fastcommon/ "** ngx_module_libs="-lfastcommon -lfdfsclient" ngx_module_srcs="$ngx_addon_dir/ngx_http_fastdfs_module.c" ngx_module_deps= CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'" . auto/module else HTTP_MODULES="$HTTP_MODULES ngx_http_fastdfs_module" NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_fastdfs_module.c" **CORE_INCS="$CORE_INCS /usr/local/include /usr/include/fastcommon/ "** CORE_LIBS="$CORE_LIBS -lfastcommon -lfdfsclient" CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'" fi
重新编译安装
[root@lsigzmdun5 fastdfs_package]# ./configure --prefix=/opt/fastdfs_package/nginx-1.20.2 --add-module=/opt/fastdfs_package/fastdfs-nginx-module-1.20/src
报错二:
[root@lsigzmdun5 nginx-1.20.2]# make && make install make -f objs/Makefile make[1]: 进入目录“/opt/fastdfs_package/nginx-1.20.2” cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='"/etc/fdfs/mod_fastdfs.conf"' -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \ -o objs/src/core/nginx.o \ src/core/nginx.c cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused ... ... cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='"/etc/fdfs/mod_fastdfs.conf"' -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I /usr/local/include -I /usr/include/fastcommon/ \ -o objs/addon/src/ngx_http_fastdfs_module.o \ /opt/fastdfs_package/fastdfs-nginx-module-1.20/src/ngx_http_fastdfs_module.c In file included from /opt/fastdfs_package/fastdfs-nginx-module-1.20/src/ngx_http_fastdfs_module.c:6:0: /opt/fastdfs_package/fastdfs-nginx-module-1.20/src/common.c: 在函数‘fdfs_http_request_handler’中: /opt/fastdfs_package/fastdfs-nginx-module-1.20/src/common.c:1245:61: 错误:‘FDFSHTTPParams’没有名为‘support_multi_range’的成员 (pContext->range_count > 1 && !g_http_params.support_multi_range)) ^ make[1]: *** [objs/addon/src/ngx_http_fastdfs_module.o] 错误 1 make[1]: 离开目录“/opt/fastdfs_package/nginx-1.20.2” make: *** [build] 错误 2
解决二:
将/opt/fastdfs_package/fastdfs-nginx-module-1.20/src/common.c
文件中第1245
行的&& !g_http_params.support_multi_range
删除。
原本文件相关上下文:
if (fdfs_check_and_format_range(pContext, file_size) != 0 || (pContext->range_count > 1 && !g_http_params.support_multi_range )) { if (fd >= 0) { close(fd); }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
改为:
if (fdfs_check_and_format_range(pContext, file_size) != 0 || (pContext->range_count > 1 )) { if (fd >= 0) { close(fd); }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
重新编译安装
[root@lsigzmdun5 fastdfs_package]# ./configure --prefix=/opt/fastdfs_package/nginx-1.20.2 --add-module=/opt/fastdfs_package/fastdfs-nginx-module-1.20/src
报错三:
安装文件与解压文件一致问题。
[root@lsigzmdun5 nginx-1.20.2]# make && make install make -f objs/Makefile make[1]: 进入目录“/opt/fastdfs_package/nginx-1.20.2” cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='"/etc/fdfs/mod_fastdfs.conf"' -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \ -o objs/src/core/nginx.o \ src/core/nginx.c cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused ... ... make[1]: 离开目录“/opt/fastdfs_package/nginx-1.20.2” make -f objs/Makefile install make[1]: 进入目录“/opt/fastdfs_package/nginx-1.20.2” test -d '/opt/fastdfs_package/nginx-1.20.2' || mkdir -p '/opt/fastdfs_package/nginx-1.20.2' test -d '/opt/fastdfs_package/nginx-1.20.2/sbin' \ || mkdir -p '/opt/fastdfs_package/nginx-1.20.2/sbin' test ! -f '/opt/fastdfs_package/nginx-1.20.2/sbin/nginx' \ || mv '/opt/fastdfs_package/nginx-1.20.2/sbin/nginx' \ '/opt/fastdfs_package/nginx-1.20.2/sbin/nginx.old' cp objs/nginx '/opt/fastdfs_package/nginx-1.20.2/sbin/nginx' test -d '/opt/fastdfs_package/nginx-1.20.2/conf' \ || mkdir -p '/opt/fastdfs_package/nginx-1.20.2/conf' cp conf/koi-win '/opt/fastdfs_package/nginx-1.20.2/conf' cp: "conf/koi-win" 与"/opt/fastdfs_package/nginx-1.20.2/conf/koi-win" 为同一文件 make[1]: *** [install] 错误 1 make[1]: 离开目录“/opt/fastdfs_package/nginx-1.20.2” make: *** [install] 错误 2
解决三:
[root@lsigzmdun5 fastdfs_package]# ./configure --prefix=/opt/fastdfs_package/nginx --add-module=/opt/fastdfs_package/fastdfs-nginx-module-1.20/src [root@lsigzmdun5 nginx-1.20.2]# make && make install make -f objs/Makefile make[1]: 进入目录“/opt/fastdfs_package/nginx-1.20.2” cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='"/etc/fdfs/mod_fastdfs.conf"' -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \ -o objs/src/core/nginx.o \ src/core/nginx.c cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused ... ... cp conf/scgi_params \ '/opt/fastdfs_package/nginx/conf/scgi_params.default' test -f '/opt/fastdfs_package/nginx/conf/nginx.conf' \ || cp conf/nginx.conf '/opt/fastdfs_package/nginx/conf/nginx.conf' cp conf/nginx.conf '/opt/fastdfs_package/nginx/conf/nginx.conf.default' test -d '/opt/fastdfs_package/nginx/logs' \ || mkdir -p '/opt/fastdfs_package/nginx/logs' test -d '/opt/fastdfs_package/nginx/logs' \ || mkdir -p '/opt/fastdfs_package/nginx/logs' test -d '/opt/fastdfs_package/nginx/html' \ || cp -R html '/opt/fastdfs_package/nginx' test -d '/opt/fastdfs_package/nginx/logs' \ || mkdir -p '/opt/fastdfs_package/nginx/logs' make[1]: 离开目录“/opt/fastdfs_package/nginx-1.20.2”
成功安装。
做软链接
[root@lsigzmdun5 nginx-1.20.2]# cd ../
[root@lsigzmdun5 fastdfs_package]# mkdir
[root@lsigzmdun5 fastdfs_package]# ls
fastdfs-5.04 fastdfs-nginx-module-1.20 libfastcommon-1.0.43 nginx nginx-1.20.2.tar.gz
fastdfs-5.04.zip fastdfs-nginx-module-1.20.zip libfastcommon-1.0.43.zip nginx-1.20.2
[root@lsigzmdun5 fastdfs_package]# mkdir /opt/fastdfs/storage/store/data/M00ab/
[root@lsigzmdun5 fastdfs_package]# ln -s /opt/fastdfs/storage/store/data/ /opt/fastdfs/storage/store/data/M00ab/
修改nginx.config
文件
主要是在http.server
下,将
location / {
root html;
index index.html index.htm;
}
替换为我们的
location ~/group([0-9])/M00 {
ngx_fastdfs_module;
}
详细配置文件如下:
[root@lsigzmdun5 fastdfs_package]# vim nginx/conf/nginx.conf #user nobody; worker_processes 1; error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; # location / { # root html; # index index.html index.htm; #} location ~/group([0-9])/M00 { ngx_fastdfs_module; } #error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
[root@lsigzmdun5 fastdfs_package]# /opt/fastdfs_package/nginx/sbin/nginx
ngx_http_fastdfs_set pid=8102
访问 http://106.12.115.19/group1/M00/00/00/wKgABGOTXGGAfL1OAAJx4dxdmjc672.png
报错四:
[root@lsigzmdun5 fastdfs_package]# tail -f nginx/logs/error.log
ngx_http_fastdfs_process_init pid=8104
[2022-12-10 00:51:31] ERROR - file: ini_file_reader.c, line: 1029, include file "http.conf" not exists, line: "#include http.conf"
[2022-12-10 00:51:31] ERROR - file: /opt/fastdfs_package/fastdfs-nginx-module-1.20/src/common.c, line: 163, load conf file "/etc/fdfs/mod_fastdfs.conf" fail, ret code: 2
2022/12/10 00:51:31 [alert] 8103#0: worker process 8104 exited with fatal code 2 and cannot be respawned
解决四:
[root@lsigzmdun5 fastdfs_package]# cp fastdfs-5.04/conf/http.conf fastdfs-5.04/conf/mime.types /etc/fdfs
[root@lsigzmdun5 fastdfs_package]# /opt/fastdfs_package/nginx/sbin/nginx -s reload
ngx_http_fastdfs_set pid=18978
再次访问 http://106.12.115.19/group1/M00/00/00/wKgABGOTXGGAfL1OAAJx4dxdmjc672.png
完成
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。