因爲FastDFS配置太複雜了,因此拆分到這一篇繼續講解。nginx
###What to do tomorrowvim
tracker和storage集羣搭建完畢,FastDFS集羣還未搭建完畢。瀏覽器
咱們先不急着去搭建FastDFS,先在tracker1使用client完成上傳圖片測試。負載均衡
進入/etc/fdfs,拷貝一份client.conf.sample,而且重命名爲client.conf tcp
修改client.conf, vim client.conf 將base_path修改爲/fastdfs/tracker, tracker_server=192.168.12.11:22122, tracker_server=192.168.12.22:22122 測試
接下來咱們在/usr/local建立一個img文件夾。mkdir img url
在img添加一個本身喜歡的圖片,我添加的是mayday.jpg. 3d
上傳文件命令:/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/img/mayday.jpg /usr/bin/fdfs_upload_file表示上傳文件操做 /etc/fdfs/client.conf表示上傳文件時所採用的配置文件 /usr/local/img/mayday.jpg表示上傳文件具體的路徑。 咱們能夠看到返回了"group2/M00/00/00/wKgMN1pDYfeAdEyCAADRd6mMX3g517.jpg"。group2表示上傳的這張照片被保存在group2.這說明group2有咱們以前上傳的圖片,而group1沒有。M00表明磁盤目錄。00/00表明磁盤上的兩級目錄,每級目錄下是從00-FF一共是1616(256)個文件,兩級就是256256個。 rest
在192.168.12.33(group1)查找剛纔上傳的圖片,沒找到。 server
在192.168.12.44(group1)查找剛纔上傳的圖片,沒找到。
在192.168.12.55(group2)查看剛纔上傳的圖片,找到了。
在192.168.12.66(group2)查找剛纔上傳的圖片,找到了。
還記得咱們在配置tracker.conf時store_lookup=0, store_group=group2嗎? store_lookup=0表明咱們選擇組上傳文件的方法是輪詢。
咱們以前的配置是輪詢策略,咱們再上傳一次文件,圖片確定會上傳到group1,毋庸置疑。美滋滋啊!
咱們上傳文件圖片存儲的位置是一次group1,一次group2,輪詢進行存儲的。
若是處於同一組的A設備發生了故障,那麼這時上傳的文件只能存放到其餘同組的設備。當A設備故障修復後,同組的其餘設備會自動將數據同步到A設備上。豈不是美滋滋?
咱們還須要配置Nginx,達到http方式來上傳或者下載文件。
咱們須要在group1和group2上把fastdfs-nginx-module_v1.16.tar.gz到/usr/local/fast。命令:tar zxvf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/fast
咱們進入/usr/local/fast/fastdfs-nginx-module/src,找到config.
咱們要把第四行的 /usr/local/include/fastdfs修改爲/usr/include/fastdfs /usr/local/include/fastcommon修改爲 /usr/include/fastcommon
由於咱們在安裝./make.sh install FastDFS的時候,安裝在/usr/include/fastdfs了。fastcommon同理。
安裝nginx依賴包 yum install pcre、yum install prce-devel、yum install zlib、yum install zlib-devel
把nginx安裝包解壓到/usr/local/ 命令:tar -zxvf nginx-1.6.2.tar.gz -C /usr/local/nginx,會自動在/usr/local/下建立nginx-1.6.2文件夾。
進入/usr/local/nginx-1.6.2下,輸入 ./configure --add-module=/usr/local/fast/fastdfs-nginx-module/src,添加fastdfs-nginx-module/src模塊而且進行檢查。
使用make && make install進行編譯安裝,安裝成功後/usr/local/目錄下會出現nginx文件夾。
進入/usr/local/fast/fastdfs-nginx-module/目錄下,找到mod_fastdfs.conf,而後複製一份到/etc/fdfs/目錄下,命令:cp mod_fastdfs.conf /etc/fdfs/
進入/etc/fdfs/目錄下,修改mod_fastdfs.conf
修改成connect_timeout=10
修改成tracker_server=192.168.12.11:22122 tracker_server=192.168.12.22:22122
修改成url_have_group_name=true
修改成store_path0=/fastdfs/storage
若是storage所在的組爲group1,group_name就不用修改,默認的是group1,不然把group_name修改爲storage相對應的組。
有幾個group,group_count就設置幾個,我這裏有2個group,那麼group_count=2
接下來就要設置group1,group2的信息,如圖所示。
添加以下內容:
[group1] group_name=group1 storage_server_port=23000 store_path_count=1 store_path0=/fastdfs/storage [group1] group_name=group2 storage_server_port=23000 store_path_count=1 store_path0=/fastdfs/storage
![]()
把修改後的mod_fastdfs.conf複製給192.168.12.4四、192.168.12.5五、192.168.12.66. 屬於group2的storage要把group_name修改成group2.
進入到/usr/local/fast/FastDFS/conf下找到http.conf和mime.types,而後把他們2個拷貝一份到/etc/fdfs/目錄下。
而後進入/etc/fdfs/目錄下,把新鮮出爐的http,conf和mime.types給192.168.12.4四、192.168.12.5五、192.168.12.66拷貝一份到/etc/fdfs/
咱們須要建立軟連接,ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00
還記得咱們以前在stroage.conf裏面http.server_port=8888嗎?
接着咱們到/usr/local/nginx/conf/目錄下,vim nginx.conf修改該文件。將server的listen端口設置爲8888
咱們也要把location替換成以下:
location ~/group([0-9])/M00 {
ngx_fastdfs_module;
}
接着老操做,把更改後的nginx.conf拷貝到192.168.12.4四、192.168.12.5五、192.168.12.66的/usr/local/nginx/conf/目錄下。
group1和group2下的storage都啓動nginx。輸入/usr/local/nginx/sbin/nginx
192.168.12.33(group1)
![]()
192.168.12.44(group1)
![]()
192.168.12.55(group2)
![]()
192.168.12.66(group2)
![]()
咱們還要給group1和group2的iptables配置端口8888 vim /etc/sysconfig/iptables 在iptables添加 -A INPUT -p tcp -m state --state NEW -m tcp --dport 8888 -j ACCEPT
而後重啓防火牆和啓動策略。 service iptables restart service iptables save
咱們在tracker1(192.168.12.11)上傳圖片。命令:/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/img/mayday.jpg
因爲返回的圖片存儲在group2,因此咱們能夠在瀏覽器輸入http://192.168.12.66:8888/group2/M00/00/00/wKgMQlpDipaABM7qAADRd6mMX3g416.jpg去訪問它,很遺憾訪問失敗了。
###What to do tomorrow
繼續配置FastDFS的負載均衡和集羣。還須要一篇博客講解完。
解決輸入http://192.168.12.66:8888/group2/M00/00/00/wKgMQlpDipaABM7qAADRd6mMX3g416.jpg無響應,輸出不了圖片的問題。
###Summary
初步排查,應該是Nginx問題。