說明:本人該篇博客來源於:beyondLi71,寫這篇博客主要是在根據他的流程搭建出了問題,本人修正後便於以後觀看及有需求的朋友少走彎路,轉載文章時也請將beyondLi71的博客鏈接加上。
Linux安裝FastDFS軟件
一、環境準備:
如果已按照該環境則跳過
yum install gcc-c++
yum -y install libevent
yum install perl
二、安裝libfastcommon
FastDFS 5.05版本不再依賴libevent,而依賴於libfastcommon,因此需要先安裝libfastcommon。
軟件包下載地址:https://github.com/happyfish100/libfastcommon
下載後將其上傳至/usr/local下進行解壓
二、安裝FastDFS
將FastDFS壓縮包上傳至服務器/usr/local下
# 解壓 tar -zxvf FastDFS_v5.05.tar.gz # 切換盤符 cd FastDFS # 安裝 ./make.sh ./make.sh install
如果安裝成功,則可以看到/etc/fdfs目錄下生成了3個文件
配置tracker節點
上面我們也提到了關於客戶端請求Tracker server進行文件上傳、下載,通過Tracker server調度最終由Storage server完成文件上傳和下載的步驟,所以我們現在需要配置tracker節點
#創建tracker的數據文件和日誌存儲目錄 mkdir -p /data/fastdfs # 切換盤符 cd /etc/fdfs # 重命名 mv tracker.conf.sample tracker.conf #修改的文件內容如下(基礎配置,不考慮性能調優情況下): vi tracker.conf base_path=/data/fastdfs #設置 tracker 的數據文件和日誌目錄(需預先創建) http.server_port=6666 #設置http端口號,默認爲8080
保存並退出,之後創建軟連接
ln -s /usr/bin/fdfs_trackerd /usr/local/bin ln -s /usr/bin/stop.sh /usr/local/bin ln -s /usr/bin/restart.sh /usr/local/bin #啓動tracker節點 service fdfs_trackerd start
啓動成功後,在/data/fastdfs目錄下生成了data和logs兩個目錄。
查看日誌如下:
配置storage節點
#創建 mkdir /data/fastdfs-storage # 切換盤符 cd /etc/fdfs/ #重命名 mv storage.conf.sample storage.conf #修改的文件內容如下(基礎配置,不考慮性能調優情況下): vi storage.conf group_name=group1 #組名,可根據實際情況修改 base_path=/data/fastdfs-storage #設置storage數據文件和日誌目錄,需預先創建 store_path_count=1 #存儲路徑個數,需要和 store_path 個數匹配、 store_path0=/data/fastdfs-storage #存儲路徑 tracker_server=192.168.116.145:22122 # #tracker 服務器的 IP地址和端口號,如果是單機搭建,IP不要寫127.0.0.1,否則啓動不成功。 http.server_port=8888 #設置 http 端口號 #創建軟連 ln -s /usr/bin/fdfs_storaged /usr/local/bin #啓動storage service fdfs_storaged start
查看日誌以確保正常啓動
cat /data/fastdfs-storage/logs/storaged.log
確認啓動成功後,可以運行 fdfs_monitor 查看 storage服務器是否已經登記到 tracker服務器。
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
看到“ACTIVE”即可確認 storage 運行正常。
使用fdfs_test上傳圖片測試
爲確保fastdfs正常運行,我們使用fdfs_test進行圖片上傳
# 切換盤符 cd /etc/fdfs/ # 重命名 mv client.conf.sample client.conf # 修改配置 vi client.conf base_path=/data/fastdfs-storage/logs tracker_server=10.10.169.140:22122 #上傳測試(最後即表示上傳的圖片) /usr/bin/fdfs_test /etc/fdfs/client.conf upload /data/yanjiang.png
如下圖所示並生成url即表示上傳成功
好了 現在我們的fastdfs就算是搭建完成了,但是我們現在使用生成的url在瀏覽器中是無法看到上傳的圖片的。想要看到上傳好了的圖片的話,我們還需要使用nginx與fastdfs進行配合才能完成。
在Storage上安裝nginx
因爲我們現在是單體的,所以不需要在tracker上安裝nginx,我們現在的主要目的是爲了進行上傳圖片的查看,因此在Storage上安裝nginx即可。
安裝FastDFS-nginx-module
將FastDFS-nginx-module_v1.16.tar.gz傳至/usr/local/下
# 切換盤符 cd /usr/local/ # 下載 wget http://nchc.dl.sourceforge.net/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz # 解壓 tar -zxvf fastdfs-nginx-module_v1.16.tar.gz #修改config文件將/usr/local/路徑改爲/usr/ vi /usr/local/fastdfs-nginx-module/src/config
# 將FastDFS-nginx-module/src下的mod_FastDFS.conf拷貝至/etc/fdfs/下 cp mod_fastdfs.conf /etc/fdfs/ # 修改mod_fastdfs.conf的內容 vi /etc/fdfs/mod_fastdfs.conf base_path=/data/fastdfs-storage/logs tracker_server=10.10.169.140:22122 #tracker_server=10.10.169.141:22122(多個tracker配置多行) url_have_group_name=true #url中包含group名稱 store_path0=/data/fastdfs-storage #指定文件存儲路徑
修改配置文件後進行保存,之後將http.conf 與 mime.types拷貝到/etc/fdfs下
# 切換盤符 cd /usr/local/FastDFS/conf/ # 拷貝文件 cp http.conf mime.types /etc/fdfs/
安裝nginx
安裝nginx的步驟在這裏不做過多的解釋,如果有不理解的同學,可以看我之前寫過的Nginx簡單介紹以及linux下使用Nginx進行負載均衡的搭建來詳細的瞭解,首先我們先將nginx上傳到服務器的/usr/local中。
# 解壓 tar -zxvf nginx-1.8.0.tar.gz # 切換目錄 cd nginx-1.8.0 # 環境準備 yum install -y pcre pcre-devel yum install -y zlib zlib-devel yum install -y openssl openssl-devel yum install gd-devel # 執行 ./configure \ --prefix=/data/nginx \ --pid-path=/var/run/nginx/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --with-http_gzip_static_module \ --http-client-body-temp-path=/var/temp/nginx/client \ --http-proxy-temp-path=/var/temp/nginx/proxy \ --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \ --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \ --http-scgi-temp-path=/var/temp/nginx/scgi \ --add-module=/usr/local/fastdfs-nginx-module/src \ # 執行 make make install # 切換目錄 cd /data/nginx/conf/ # 修改配置文件 vi nginx.conf #添加location location /group1/M00/{ ngx_fastdfs_module; }