環境:
storage1:192.168.6.100storage2:192.168.6.101tracker:192.168.6.1021. 在每個機器上,下載安裝 FastDFS
nginx $> wget # 解壓nginx $> tar zxvf FastDFS_v2.04.tar.gznginx $> cd FastDFS# 因為我是給nginx添加fastdfs模塊,所以不需要fastdfs支持 http 所以我就不需要去掉 #WITH_HTTPD=1 前的注釋了,直接編譯nginx $> ./make.shnginx $> ./make.sh install2.修改tracker 和 storage 的配置文件
# tracker 的修改
#兩臺 storage.conf的修改
storage $> vim /etc/fdfs/storage.confdisabled=false#配置是否生效group_name=group1#storage所在組(卷)bind_addr=192.168.6.100# 綁定IP,另一太 storage IP為 192.168.6.101client_bind=true#bind_addr通常是針對server的。當指定bind_addr時,本參數才有效。port=23000# 是storage 服務端口connect_timeout=30# 連接超時時間,針對socket套接字函數connectnetwork_timeout=60# storage server 網絡超時時間,單位為秒。heart_beat_interval=30# 心跳間隔時間,單位為秒stat_report_interval=60# storage server向tracker server報告磁盤剩余空間的時間間隔,單位為秒。base_path=/home/eric# base_path 目錄地址,根目錄必須存在 子目錄會自動生成# 會產生data(數據存儲地方)、 logs日志文件max_connections=256# 最大連接數buff_size = 256KB# 設置隊列結點的buffer大小。work_threads=4# 工作線程數disk_rw_separated = true# 磁盤IO讀寫是否分離,缺省是分離的。disk_reader_threads = 1# 針對單個存儲路徑的讀線程數,缺省值為1disk_writer_threads = 1# 針對單個存儲路徑的寫線程數,缺省值為1sync_wait_msec=200# 同步文件時,如果從binlog中沒有讀到要同步的文件,休眠N毫秒后重新讀取,0表示不休眠,立即再次嘗試讀取。sync_interval=0# 同步上一個文件后,再同步下一個文件的時間間隔,單位為毫秒,0表示不休眠,直接同步下一個文件。sync_start_time=00:00sync_end_time=23:59# 允許系統同步的時間段 (默認是全天) 。一般用于避免高峰同步產生一些問題而設定,相信sa都會明白。write_mark_file_freq=500# 把storage的mark文件定期同步到磁盤的時間間隔,單位為秒store_path_count=1# 存放文件時storage server支持多個路徑(例如磁盤)。這里配置存放文件的基路徑數目,通常只配一個目錄。store_path0=/home/eric# 逐一配置store_path個路徑,索引號基于0。注意配置方法后面有0,1,2 ......,需要配置0到store_path - 1。# 如果不配置base_path0,那邊它就和base_path對應的路徑一樣。subdir_count_per_path=32# FastDFS存儲文件時,采用了兩級目錄。這里配置存放文件的目錄個數tracker_server=192.168.6.188:22122# tracker_server 的列表 要寫端口的哦log_level=info# 日志級別run_by_group=# 運行storage 用戶組run_by_user=# 運行storage 用戶allow_hosts=*# 允許連接IP列表file_distribute_path_mode=0# 文件在data目錄下分散存儲策略。# 0: 輪流存放# 1: 隨機存儲file_distribute_rotate_count=100# 當上面的參數file_distribute_path_mode配置為0(輪流存放方式)時,本參數有效。#當一個目錄下的文件存放的文件數達到本參數值時,后續上傳的文件存儲到下一個目錄中fsync_after_written_bytes=0# 當寫入大文件時,每寫入N個字節,調用一次系統函數fsync將內容強行同步到硬盤。0表示從不調用fsyncsync_log_buff_interval=10# 同步或刷新日志信息到硬盤的時間間隔,單位為秒sync_binlog_buff_interval=60# 同步binglog(更新操作日志)到硬盤的時間間隔,單位為秒sync_stat_file_interval=300# 把storage的stat文件同步到磁盤的時間間隔,單位為秒。thread_stack_size=512KB# 線程棧的大小。FastDFS server端采用了線程方式。# 線程棧越大,一個線程占用的系統資源就越多。upload_priority=10本storage server作為源服務器,上傳文件的優先級,可以為負數。值越小,優先級越高。這里就和 tracker.conf 中store_server= 2時的配置相對應了if_alias_prefix=check_file_duplicate=0# 是否檢測上傳文件已經存在。如果已經存在,則不存在文件內容,建立一個符號鏈接以節省磁盤空間。 結合 fastdfh使用的。 1是檢測,0是不檢測,我們不使用fastdfh 當然 0 key_namespace=FastDFS# 當上個參數設定為1 或 yes時 (true/on也是可以的) , 在FastDHT中的命名空間keep_alive=0# 與FastDHT servers 的連接方式 (是否為持久連接)# 下面是http的配置了就不多說了http.disabled=truehttp.domain_name=http.server_port=80http.trunk_size=256KBhttp.need_find_content_type=true3.建立tracker 和 storage 的根目錄
# trackertracker $> mkdir -p /home/eric# storagestorage $> mkdir -p /home/yangzi4.在 一臺storage上下載,比如我在 192.168.6.100上下載 nginx 和 fastdfs-nginx-module 模塊
storage $> wget storage $> svn export fastdfs-nginx-module-read-only5.編譯安裝 nginx 附帶 fastdfs-nginx-module 模塊
storage $> tar zxvf nginx-0.8.53.tar.gzstorage $> cd nginx-0.8.53storage $> ./configure --prefix=/usr/local/nginx --add-module=/root/fastdfs-nginx-module-read-only/srcstorage $> makestorage $> make install# 拷貝mod_fastdfs.conf 到/etc/fdfs/storage $> cp /root/fastdfs-nginx-module-read-only/src/mod_fastdfs.conf /etc/fdfs/6.修改 nginx 配置文件增加
storage $> vim /usr/local/nginx/conf/nginx.conf# 增加一下
location /M00 {
alias /home/eric/data;
ngx_fastdfs_module;
}
7. 給 storage 的存儲目錄做一個軟連接
storage $> ln -s /home/yangzi/data /home/yangzi/data/M008. 啟動兩臺 storage 和tracker nginx
# 啟動 trackertracker $> /usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf# 啟動 storagestorage $> /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf# 啟動 storage2storage2 $> /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf#在 storage啟動 nginxstorage $> /usr/local/nginx/sbin/nginx9、上傳文件測試。
# 修改客戶端配置文件
打開IE瀏覽器訪問:

新聞熱點
疑難解答
圖片精選