centos fastdfs 多伺服器 多硬碟 多組 配置詳解

來源:互聯網
上載者:User

標籤:

說本文前,先感謝happy_fish100提供的fastdfs,輕量級的分布式檔案伺服器。

隨著使用者量的變大,圖片,視頻等的量會不斷的增大,這個時候一個硬碟可能不夠用了,就要加硬碟。硬碟加不了時,就要增加伺服器了。同一組伺服器,檔案伺服器的東西是一樣,不同組的伺服器,有不同的檔案,不同的組之間,共同組建了檔案伺服器的所有內容。

下面說一下,安裝配置的過程,這裡配置的方法,根開發人員提供的方法不一樣,我沒有用到fastdfs-nginx-module,通過配置nginx實現了fastdfs-nginx-module的功能。

 

一,Fastdfs的下載

地址:http://sourceforge.net/projects/fastdfs/files/FastDFS%20Server%20Source%20Code/

二,伺服器,以及系統

我用的centos 6.5 x86_64 ,fastdfs v5.01架構如下:

架構圖

這裡的tracker是單點的,如果出了故障就鬱悶了,以前搞過一次多tracker,不過版本比較老了。請參考:fastdfs 多伺服器 配置

三,安裝fastdfs和nginx

1,安裝nginx

查看複製列印?
  1. //安裝,gcc,automake,autoconf等依賴包  
  2. [[email protected] download]$ yum install gettext gettext-devel libXft libXft-devel libXpm libXpm-devel\  
  3.  automake autoconf libXtst-devel gtk+-devel gcc zlib-devel libpng-devel gtk2-devel glib-devel  
  4.   
  5. //安裝FastDFS  
  6. [[email protected] download]# tar zxf FastDFS_v5.01.tar.gz  
  7. [[email protected] download]# cd FastDFS  
  8. [[email protected] download]# ./make.sh  
  9. [[email protected] download]# ./make.sh install  
  10.   
  11. //安裝成功有以下內容  
  12. [[email protected] fdfs]# ll /usr/local/bin/ |grep fdfs  
  13. -rwxr-xr-x 1 root root 522870 7月 4 03:20 fdfs_appender_test  
  14. -rwxr-xr-x 1 root root 522823 7月 4 03:20 fdfs_appender_test1  
  15. -rwxr-xr-x 1 root root 513975 7月 4 03:20 fdfs_append_file  
  16. -rwxr-xr-x 1 root root 513393 7月 4 03:20 fdfs_crc32  
  17. -rwxr-xr-x 1 root root 513927 7月 4 03:20 fdfs_delete_file  
  18. -rwxr-xr-x 1 root root 514329 7月 4 03:20 fdfs_download_file  
  19. -rwxr-xr-x 1 root root 514093 7月 4 03:20 fdfs_file_info  
  20. -rwxr-xr-x 1 root root 525024 7月 4 03:20 fdfs_monitor  
  21. -rwxr-xr-x 1 root root 1179642 7月 4 03:20 fdfs_storaged  
  22. -rwxr-xr-x 1 root root 529805 7月 4 03:20 fdfs_test  
  23. -rwxr-xr-x 1 root root 527726 7月 4 03:20 fdfs_test1  
  24. -rwxr-xr-x 1 root root 655761 7月 4 03:20 fdfs_trackerd  
  25. -rwxr-xr-x 1 root root 514173 7月 4 03:20 fdfs_upload_appender  
  26. -rwxr-xr-x 1 root root 514951 7月 4 03:20 fdfs_upload_file  

2,安裝nginx

  1. [[email protected] fdfs]# yum install nginx  

所有機器的fastdfs和nginx安裝方法都是一樣。

四,配置192.168.10.219伺服器

1,配置tracker和storage

查看複製列印?
  1. [[email protected] fdfs]# vim /etc/fdfs/tracker.conf   
  2.   
  3. port=22122                   #設定tracker的連接埠號碼  
  4. base_path=/var/www/fastdfs   #設定tracker的資料檔案和日誌目錄(需預先建立)  

如果要調優,參考:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=1941456

查看複製列印?
  1. [[email protected] fdfs]# vim /etc/fdfs/storage.conf  
  2.   
  3. group_name=group1                   #組名,根據實際情況修改  
  4. port=23000                          #設定storage的連接埠號碼  
  5. base_path=/var/www/fastdfs          #設定storage的日誌目錄(需預先建立)  
  6. store_path_count=1                  #儲存路徑個數,需要和store_path個數匹配  
  7. store_path0=/var/www/fastdfs        #儲存路徑  
  8. tracker_server=192.168.10.219:22122 #tracker伺服器的IP地址和連接埠號碼  

2,tracker的nginx配置

查看複製列印?
  1. [[email protected] nginx]# cat /etc/nginx/nginx.conf   #配置主設定檔  
  2. user nginx;  
  3. worker_processes 1;  
  4. events {  
  5.  worker_connections 65535;  #最大連結數  
  6.  use epoll;                 #新版本的Linux可使用epoll加快處理效能  
  7. }  
  8. error_log /var/log/nginx/error.log;  
  9. pid /var/run/nginx.pid;  
  10.   
  11. http {  
  12.  server_names_hash_bucket_size 128;  
  13.  client_header_buffer_size 32k;  
  14.  large_client_header_buffers 4 32k;  
  15.  client_max_body_size 300m;  
  16.  sendfile on;  
  17.  tcp_nopush on;  
  18.  proxy_redirect off;  
  19.  proxy_set_header Host $http_host;  
  20.  proxy_set_header X-Real-IP $remote_addr;  
  21.  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
  22.  proxy_connect_timeout 90;  
  23.  proxy_send_timeout 90;  
  24.  proxy_read_timeout 90;  
  25.  proxy_buffer_size 16k;  
  26.  proxy_buffers 4 64k;  
  27.  proxy_busy_buffers_size 128k;  
  28.  proxy_temp_file_write_size 128k;  
  29.   
  30.  log_format main ‘$remote_addr - $remote_user [$time_local] "$request" ‘  
  31.  ‘$status $body_bytes_sent "$http_referer" ‘  
  32.  ‘"$http_user_agent" "$http_x_forwarded_for"‘;  
  33.   
  34.  access_log /var/log/nginx/access.log main;  
  35.   
  36.  #設定緩衝儲存路徑、儲存方式、分配記憶體大小、磁碟最大空間、緩衝期限  
  37.  proxy_cache_path /var/cache/nginx/proxy_cache levels=1:2 keys_zone=http-cache:500m max_size=10g inactive=30d;  
  38.  proxy_temp_path /var/cache/nginx/proxy_cache/tmp;  
  39.   
  40.  upstream fdfs_group1 { #設定group1的伺服器  
  41.  server 192.168.10.209:8080 weight=1 max_fails=2 fail_timeout=30s;  
  42.  server 192.168.10.219:8080 weight=1 max_fails=2 fail_timeout=30s;  
  43.  }  
  44.   
  45.  upstream fdfs_group2 { #設定group2的伺服器  
  46.  server 192.168.10.103:10000 weight=1 max_fails=2 fail_timeout=30s;  
  47.  }  
  48.   
  49.  include /etc/nginx/conf.d/*.conf;  
  50. }  
查看複製列印?
  1. [[email protected] fdfs]# cat /etc/nginx/conf.d/tracker.conf    #配置nginx的tracker  
  2. server {  
  3.  listen 80;                #設定伺服器連接埠  
  4.  server_name 192.168.10.219;  
  5.   
  6.  location /group1/M00 {    #設定group1的負載平衡參數  
  7.  proxy_next_upstream http_502 http_504 error timeout invalid_header;  
  8.  proxy_cache http-cache;  
  9.  proxy_cache_valid 200 304 12h;  
  10.  proxy_cache_key $uri$is_args$args;  
  11.  proxy_pass http://fdfs_group1;  
  12.  expires 30d;  
  13.  }  
  14.   
  15.  location ~* /group2/(M00|M01) { #設定group2的負載平衡參數  
  16.  proxy_next_upstream http_502 http_504 error timeout invalid_header;  
  17.  proxy_cache http-cache;  
  18.  proxy_cache_valid 200 304 12h;  
  19.  proxy_cache_key $uri$is_args$args;  
  20.  proxy_pass http://fdfs_group2;  
  21.  expires 30d;  
  22.  }  
  23. }  
查看複製列印?
  1. [[email protected] conf.d]# cat /etc/nginx/conf.d/storage.conf   #配置nginx的storage  
  2. server  
  3. {  
  4.  listen 8080;  
  5.  server_name 192.168.10.219;   
  6.   
  7.  location /group1/M00/ {  
  8.  root /var/www/fastdfs/data;  
  9.  rewrite ^/group1/M00/(.*) /$1 break;  
  10.  }   
  11.   
  12. }  

3,啟動tracker,storage和nginx

查看複製列印?
  1. //啟動  
  2. [[email protected] fdfs]# /usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart  
  3. [[email protected] fdfs]# /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf restart  
  4. [[email protected] fdfs]# /etc/init.d/nginx start  

在這裡有一點要注意,就是要先啟動tracker在啟動storage,如果nginx報目錄沒有建,建立一下,在重新啟動

五,配置192.168.10.209伺服器

1,配置storage

查看複製列印?
  1. [[email protected] fdfs]# vim /etc/fdfs/storage.conf  
  2.   
  3. group_name=group1                   #組名,根據實際情況修改  
  4. port=23000                          #設定storage的連接埠號碼  
  5. base_path=/var/www/fastdfs          #設定storage的日誌目錄(需預先建立)  
  6. store_path_count=1                  #儲存路徑個數,需要和store_path個數匹配  
  7. store_path0=/var/www/fastdfs        #儲存路徑  
  8. tracker_server=192.168.10.219:22122 #tracker伺服器的IP地址和連接埠號碼  

2,nginx配置

查看複製列印?
  1. [[email protected] conf.d]# cat /etc/nginx/conf.d/storage.conf   #配置storage  
  2. server  
  3. {  
  4.  listen 8080;  
  5.  server_name 192.168.10.209;   
  6.   
  7.  location /group1/M00/ {  
  8.  root /var/www/fastdfs/data;  
  9.  rewrite ^/group1/M00/(.*) /$1 break;  
  10.  }   
  11.   
  12. }  

3,啟動

查看複製列印?
  1. //啟動  
  2. [[email protected] fdfs]# /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf restart  
  3. [[email protected] fdfs]# /etc/init.d/nginx start  

六,配置192.168.10.103伺服器

1,配置storage

查看複製列印?
  1. [[email protected] fdfs]# vim /etc/fdfs/storage.conf  
  2.   
  3. group_name=group2                   #組名,根據實際情況修改  
  4. port=23000                          #設定storage的連接埠號碼  
  5. base_path=/var/www/fastdfs          #設定storage的日誌目錄(需預先建立)  
  6. store_path_count=2                  #儲存路徑個數,需要和store_path個數匹配  
  7. store_path0=/var/www/fastdfs        #儲存路徑  
  8. store_path1=/mnt/usb/fastdfs2       #硬碟2的儲存路徑  
  9. tracker_server=192.168.10.219:22122 #tracker伺服器的IP地址和連接埠號碼  

在這裡有一點要注意,就是有二塊硬碟,存檔案的目錄也有二個

2,配置nginx

查看複製列印?
  1. [[email protected] conf.d]# cat /etc/nginx/conf.d/storage.conf    #配置storage  
  2. server  
  3. {  
  4.  listen 10000;  
  5.  server_name 192.168.10.103;   
  6.   
  7.  location /group2/M01/ {  
  8.  root /mnt/usb/fastdfs2/data;  
  9.  rewrite ^/group2/M01/(.*) /$1 break;  
  10.  }   
  11.   
  12.  location /group2/M00/ {  
  13.  root /var/www/fastdfs/data;  
  14.  rewrite ^/group2/M00/(.*) /$1 break;  
  15.  }   
  16.   
  17. }  

3,啟動

查看複製列印?
  1. //啟動  
  2. [[email protected] fdfs]# /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf restart  
  3. [[email protected] fdfs]# /etc/init.d/nginx start  

到這兒就安裝配置好了,有一點要注意:

就是訪問檔案伺服器的檔案時,地址要用tracker的地址,例如:

http://192.168.10.219/group2/M01/00/00/wKgKZ1PAEquAbLj1AAK4TxGeCvM649.jpg

centos fastdfs 多伺服器 多硬碟 多組 配置詳解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.