1. 程式人生 > >fastdfs單主機配置多個storage 第二版

fastdfs單主機配置多個storage 第二版

dup var 日誌 必須 ima 出現 ace priority names

關於FastDFS蛋疼的集群和負載均衡(八)之總結FastDFS cmazxiaoma

問題1
1.是配置/root/soft/fastdfs-nginx-module/src/mod_fastdfs.conf 還是/etc/fdfs/mod_fastdfs.conf下面的?

2.多個組,必須以group1,group2命名

3.尤其storage的nginx啟動一定要看啟動日誌,最多的配置問題會出現在這裏

fdfs註意事項

附錄:

在整個環境搭建過程中遇到一些問題,在此提交分享,供大家參考。

1、 在Storage服務器上啟動Nginx時出現 ERROR - file: /home/hadoop/dev/fastdfs/fastdfs-nginx-module/src/common.c, line: 103, section: group1, you must set parameter: group_name!

問題原因:在配置mod_fastdfs.conf文件時要保證group_count=2的個數與下面配置的[group*]個數相一致。

2、 安裝GraphicsMagick進行配置時出現錯誤 configure: error: libltdl is required by modules build 問題原因:沒有安裝libltdl,通過yum install

-ylibtoollibtool-devel安裝後再重新

3、 java客戶端上傳文件時出現錯誤 recvcmd: 100 is not correct, expect cmd: 10

問題原因:版本問題,下載1.24版本的即可。

4、 通過瀏覽器方式縮略圖是出現

gm convert: Request did not return an image.錯誤。

問題原因:沒有安裝libjpeg和libpng包,導致在GM處理圖時出現錯誤。安裝libjpeg和libpng後重新安裝GraphicsMagick即可。

5、 安裝FastDFS在 編譯時出現

/usr/local/lib/libfastcommon.so: undefined reference

to sqrt‘ /usr/local/lib/libfastcommon.so: undefined reference

tocos‘錯誤

問題原因:libfastcommon版本的問題,下載舊版本,重新安裝,然後在編譯FastDFS即可。

6.這樣先證明了這個fastdfs的group4新目錄裏面的圖片是可以被訪問的,然後再讓開發人員在調用組件上傳突破的時候,將調用url裏面的group1變成group4即可。

7.ntpdate asia.pool.ntp.org

配置文件與軟件版本
技術分享圖片

trackerd
cat mod_fastdfs.conf
#include http.conf
connect_timeout=2
network_timeout=30
storage_sync_file_max_delay = 86400
tracker_server=172.16.30.227:22122
load_fdfs_parameters_from_tracker=true
log_level=info
log_filename=/var/log/mod.log
url_have_group_name=true
response_mode=redirect
if_alias_prefix=
flv_support = true
flv_extension = flv
group_count = 3
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfsdata/storage
#base_path=/opt/fastdfsdata/fastdfs_nginx
[group2]
group_name=secret
storage_server_port=23001
store_path_count=1
store_path0=/opt/fastdfsdata/secret
[group3]
group_name=public
storage_server_port=23002
store_path_count=1
store_path0=/opt/fastdfsdata/public

[root@localhost fdfs]# cat /etc/fdfs/tracker.conf
disabled=false
bind_addr=172.16.30.227
port=22122
connect_timeout=90
network_timeout=90
base_path=/opt/fastdfsdata/tracker
max_connections=256
accept_threads=4
work_threads=4
store_lookup=2
#store_group=group1
store_group=0
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=80
http.check_alive_interval=90
http.check_alive_type=tcp
http.check_alive_uri=/status.html

nginx
[root@localhost conf]# cat nginx.conf
user  root;
worker_processes  4;
error_log  logs/error.log  info;
pid        logs/nginx.pid;
events {
    worker_connections  1024;
    use epoll;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    tcp_nopush     on;
    keepalive_timeout  65;
    server_names_hash_bucket_size 128;
    client_header_buffer_size 32k;
    large_client_header_buffers 4 32k;
    client_max_body_size 300m;
    proxy_redirect off;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_connect_timeout 90;
    proxy_send_timeout 90;
    proxy_read_timeout 90;
    proxy_buffer_size 16k;
    proxy_buffers 4 64k;
    proxy_busy_buffers_size 128k;
    proxy_temp_file_write_size 128k;
    upstream fdfs_group2 {
        server 172.16.30.228:80 weight=1 max_fails=2 fail_timeout=60s;
    }
    upstream secret {
        server 172.16.30.228:8081 weight=1 max_fails=2 fail_timeout=60s;
    }
    upstream public {
        server 172.16.30.228:8082 weight=1 max_fails=2 fail_timeout=60s;
    }

    log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                      ‘$status $body_bytes_sent "$http_referer" ‘
                      ‘"$http_user_agent" "$http_x_forwarded_for"‘;
    server {
        listen       80;
        server_name  192.168.1.227;
        access_log  logs/host.access.log  main;
    location ~ /group1/ {
           if ($arg_attname ~ "^(.*).*") {
                 add_header Content-Disposition "attachment;filename=$arg_attname";
           }
        proxy_next_upstream http_502 http_504 error timeout invalid_header;
        proxy_pass http://fdfs_group2;
    }

    location ~ /secret/ {
           if ($arg_attname ~ "^(.*).*") {
                 add_header Content-Disposition "attachment;filename=$arg_attname";
           }
        proxy_next_upstream http_502 http_504 error timeout invalid_header;
        proxy_pass http://secret;
    }

    location ~ /public/ {
           if ($arg_attname ~ "^(.*).*") {
                 add_header Content-Disposition "attachment;filename=$arg_attname";
           }
        proxy_next_upstream http_502 http_504 error timeout invalid_header;
        proxy_pass http://public;
    }

   }
}

/usr/local/bin/fdfs_storaged /etc/fdfs/public.conf

cat /etc/fdfs/public.conf
disabled=false
group_name=public
bind_addr=172.16.30.228
client_bind=true
port=23002
connect_timeout=90
network_timeout=90
heart_beat_interval=90
stat_report_interval=60
base_path=/opt/fastdfsdata/public
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/fastdfsdata/public
subdir_count_per_path=256
tracker_server=172.16.30.227: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=8082

[root@localhost fdfs]# cat mod_fastdfs.conf
#include http.conf
connect_timeout=2
network_timeout=30
storage_sync_file_max_delay = 86400
tracker_server=172.16.30.227:22122
load_fdfs_parameters_from_tracker=true
log_level=info
log_filename=/var/log/mod.log
url_have_group_name=true
response_mode=redirect
if_alias_prefix=
flv_support = true
flv_extension = flv
group_count = 3
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfsdata/storage
#base_path=/opt/fastdfsdata/fastdfs_nginx
[group2]
group_name=secret
storage_server_port=23001
store_path_count=1
store_path0=/opt/fastdfsdata/secret
[group3]
group_name=public
storage_server_port=23002
store_path_count=1
store_path0=/opt/fastdfsdata/public

nginx
[root@localhost conf]# cat nginx.conf
user  root;
worker_processes  1;
#error_log  logs/error.log;
#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;
    keepalive_timeout  65;
    include  ./conf.d/*.conf;

}

[root@localhost conf]# cat conf.d/public.conf 
server {
        listen       8082;
        server_name  172.16.30.228;

        access_log  logs/public.log;
        error_log  logs/public.err;

        location ~/public/M00 {
            root /opt/fastdfsdata/public/data; 
            ngx_fastdfs_module;      
         }
    }

fastdfs單主機配置多個storage 第二版