fastdfs单主机配置多个storage

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
disabled = false
group_name = group1
bind_addr = 172.1 . 1.1
client_bind = true
port = 23000
connect_timeout = 30
network_timeout = 60
heart_beat_interval = 30
stat_report_interval = 60
base_path = / data / fastdfs
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 = / data / fastdfs
subdir_count_per_path = 256
tracker_server = 172.1 . 1.2 : 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






1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
disabled = false
group_name = groupuser2
bind_addr = 172.1 . 1.1
client_bind = true
port = 23001
connect_timeout = 30
network_timeout = 60
heart_beat_interval = 30
stat_report_interval = 60
base_path = / data / groupuser2
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 = / data / groupuser2
subdir_count_per_path = 256
tracker_server = 172.1 . 1.2 : 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 = 8889


1
2
3
4
5
6
7
cat config
ngx_addon_name = ngx_http_fastdfs_module
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/include/fastdfs /usr/include/fastcommon/"
CORE_LIBS = "$CORE_LIBS -L/usr/local/lib -lfastcommon -lfdfsclient"
CFLAGS = "$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
cat mod_fastdfs.conf
#include http.conf
connect_timeout = 2
network_timeout = 30
storage_sync_file_max_delay  =  86400
tracker_server = 172.1 . 1.2 : 22122
load_fdfs_parameters_from_tracker = true
log_level = info
log_filename = / var / log / tengine / mod.log
url_have_group_name = true
response_mode = redirect
if_alias_prefix =
flv_support  =  true
flv_extension  =  flv
group_count  =  5
[group1]
group_name = group1
storage_server_port = 172.1 . 1.1 : 23000
store_path_count = 1
store_path0 = / data / fastdfs
base_path = / data / fastdfs
[group2]
group_name = groupuser2
storage_server_port = 172.1 . 1.1 : 23001
store_path_count = 1
store_path0 = / data / groupuser2
base_path = / data / groupuser2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
nginx
server {
   listen  8080 ;
   server_name  172.1 . 1.1 ;
   access_log       / var / log / tengine / test_access.log;
   error_log        / var / log / tengine / test_error.log;
   location  / lua {
      default_type  'text/plain' ;
      content_by_lua  'ngx.say("hello,lua")' ;
      }
   location ~ *  / group1 / M00 /   {
       ngx_fastdfs_module;
       set  $needCreateImg  0 ;
       if  ( ! - f $request_filename) {
          set  $needCreateImg  "${needCreateImg}1" ;
       }
 
      if  ($uri ~ *  "/group1/M00/(\d+)/(\d+)/([A-Za-z0-9_-]+).(gif|jpg|jpeg|png).(\d+x\d+).(gif|jpg|jpeg|png)" ) {
          set  $needCreateImg  "${needCreateImg}2" ;
          set  $conUri      "/$1/$2/$3.$4.$5.$6" ;
       }
 
       if  ($needCreateImg  =  "012" ) {
          set  $image_root  "/data/fastdfs/data" ;
          set  $ file  "$image_root$conUri" ;
             rewrite_by_lua '
                local index  =  string.find(ngx.var.conUri,  "([0-9]+)x([0-9]+)" );
                local originalUri  =  string.sub(ngx.var.conUri,  0 , index - 2 );
                local area  =  string.sub(ngx.var.conUri, index);
                index  =  string.find(area,  "([.])" );
                area  =  string.sub(area,  0 , index - 1 );
 
                function table.contains(table, element)
                  for  _, value  in  pairs(table) do                 
                    if  value  = =  element then
                      return  true
                    end
                   end
                   return  false
                 end
 
                 local c  =  "/usr/local/graphicsmagick/bin/gm convert "  .. ngx.var.image_root ..  originalUri  ..  " -thumbnail "  .. area ..  " - " ;
                 local f  =  assert (io.popen(c,  "r" ))
                 local s  =  assert (f:read( "*a" ))
                 f:close()
                 ngx.say(s) ';
               }
            alias  / data / fastdfs / data / ;
         }
}

再搞个8081就行了。


访问400的错误

http://bbs.chinaunix.net/thread-4120027-1-1.html

wKiom1mj6XKA2uabAACOzxaAqeI992.png


java实现FastDFS实现文件上传下载实战


http://blog.csdn.net/liweizhong193516/article/details/53244134


原理http://bbs.chinaunix.net/thread-4068654-2-1.html


wKioL1mk3viitZAyAAFrZebCuVQ746.png


经过测试,发现redirect模式有问题,header already sent,所以正确还是Proxy模式。


缩略图

"/usr/local/graphicsmagick/bin/gm convert "

or

"/usr/local/ImageMagick/bin/convert "




本文转自 liqius 51CTO博客,原文链接:http://blog.51cto.com/szgb17/1960255,如需转载请自行联系原作者
相关文章
|
6月前
|
存储 应用服务中间件 数据库
C++文件服务器项目—Nginx+FastDFS插件—5
C++文件服务器项目—Nginx+FastDFS插件—5
90 0
|
3月前
|
存储 负载均衡 应用服务中间件
FastDFS+Nginx:轻松搭建本地文件服务器
【8月更文挑战第19天】在现今互联网快速发展的时代,文件服务器作为支撑各种在线服务的重要基础设施,其稳定性和性能显得尤为关键。FastDFS作为一款开源的轻量级分布式文件系统,凭借其高效的文件管理功能,特别适合用于构建相册网站、视频网站等以文件为载体的在线服务。本文将详细介绍如何利用FastDFS和Nginx快速搭建一个本地文件服务器,为您的工作和学习提供技术支持。
318 0
|
6月前
|
负载均衡 架构师 应用服务中间件
FastDFS+Nginx搭建一个本地文件服务器
FastDFS+Nginx搭建一个本地文件服务器
217 0
|
存储 Unix 应用服务中间件
k8s--数据存储、HostPath、NFS 存储
k8s--数据存储、HostPath、NFS 存储
|
存储 Apache
Centos7.7下建立无共享存储的WEB集群(pcs+pacemaker+corosync)
Centos7.7下建立无共享存储的WEB集群(pcs+pacemaker+corosync)
74 0
|
存储 应用服务中间件 Linux
FastDFS+Nginx实现文件服务器
FastDFS+Nginx实现文件服务器
FastDFS+Nginx实现文件服务器
|
存储 机器学习/深度学习 负载均衡
Nginx && FastDFS实现分布式文件服务器
Nginx && FastDFS实现分布式文件服务器
Nginx && FastDFS实现分布式文件服务器
|
存储 负载均衡 应用服务中间件
FastDFS和Nginx实现分布式文件服务器
FastDFS和Nginx实现分布式文件服务器
287 0
FastDFS和Nginx实现分布式文件服务器
|
存储 Linux 数据安全/隐私保护
【Storage】ISCSI IPSAN服务搭建
基于CentOS7的,不是WinServ啦
2381 0
【Storage】ISCSI IPSAN服务搭建
|
网络协议 Shell 应用服务中间件
fastdfs storage节点制作2
fastdfs storage节点制作2(接上篇)
236 0