一、環境准備
下載FastDFS安裝包:
FastDFS下載地址:https://github.com/happyfish100/
libfatscommon:FastDFS分離出的一些公用函數包
FastDFS:FastDFS本體
fastdfs-nginx-module:FastDFS和nginx的關聯模塊
下載Nginx安裝包
下載地址:http://nginx.org/en/download....
nginx用來提供訪問服務
將下載好的安裝包上傳到服務器上
二、開始安裝
以下安裝步驟tracker和storage都要執行
1、安裝基礎環境
yum install -y gcc gcc-c++yum -y install libevent
2、解壓libfatscommon函數庫
# 解壓tar -zxvf libfastcommon-1.0.43.tar.gz
3、進入libfastcommon文件夾,編譯並且安裝
./make.sh
./make.sh install
從控制台可以看到安裝目錄
4、解壓fastdfs主程序文件
# 解壓tar -zxvf fastdfs-6.06.tar.gz
5、進入fastdfs目錄,安裝fastdfs主程序
./make.sh
./make.sh install
從控制台可以看到主程序的安裝目錄
- /usr/bin中包含了可執行文件:
- /etc/fdfs包含了配置文件:
6、將安裝文件夾下的配置文件拷貝到/etc/fdfs目錄下
cp /etc/FastDFS/fastdfs/fastdfs-6.06/conf/* /etc/fdfs/
7、配置tracker服務
1、說明
tracker和storage都是同一個fastdfs的主程序的兩個不同概念,配置不同的配置文件就可以設定為tracker或者storage
2、配置tracker
/etc/fdfs下都是一些配置文件,配置tracker即可
vim tracker.conf
3、修改tracker配置文件中的tracker工作目錄,保存數據以及日志
base_path=/usr/local/fastdfs/tracker
保存並退出,然后創建/usr/local/fastdfs/tracker目錄
mkdir /usr/local/fastdfs/tracker -p
4、啟動tracker服務
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
檢查進程如下:
ps -ef|grep tracker
啟動成功!
5、停止tracker
/usr/bin/stop.sh /etc/fdfs/tracker.conf stop
8、配置storage服務
1、修改storage配置文件
vim storage.conf
# 修改storage的工作空間base_path=/usr/local/fastdfs/storage
# 修改storage的存儲空間store_path0=/usr/local/fastdfs/storage
# 修改tracker的地址和端口號,用於心跳tracker_server=192.168.0.170:22122
創建目錄
mkdir /usr/local/fastdfs/storage -p
2、啟動storage
啟動storage欠必須先啟動tracker
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
檢查進程如下:
ps -ef|grep storage
啟動成功!
9、測試上傳
1、修改的client配置文件
vim client.conf
base_path=/usr/local/fastdfs/client
#tracker的ip根據實際tracker的ip地址配置
tracker_server=192.168.0.170:22122
創建目錄
mkdir /usr/local/fastdfs/client -p
2、測試
這里以上傳/etc/fdfs目錄下的anti-steal.jpg文件進行測試
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /etc/fdfs/anti-steal.jpg
報錯,這里是因為tracker服務器的22122端口沒開放,開放端口后重新上傳
上傳成功!這里remote_filename顯示了上傳后存儲目錄(在前面配置的storage的store_path0=/usr/local/fastdfs/storage下),url為遠程訪問地址,這里還不能遠程訪問,配置了nginx模塊后才能訪問。
cd /usr/local/fastdfs/storage/data
三、配置 nginx
fastdfs安裝好以后是無法通過http訪問的,這個時候就需要借助nginx了,所以需要安裝fastdfs的第三方模塊到nginx中,就能使用了。
注:nginx需要和storage在同一個節點。
1、安裝nginx插件
- 解壓nginx的fastdfs壓縮包
tar -zxvf fastdfs-nginx-module-1.22.tar.gz
- 進入解壓后文件夾的src目錄下,復制配置文件到fdfs目錄下
cp mod_fastdfs.conf /etc/fdfs
- 修改/fastdfs-nginx-module/src/config文件,主要是修改路徑,把local刪除,因為fastdfs安裝的時候我們沒有修改路徑,原路徑是/usr:
修改后
2、安裝nginx
安裝步驟參考:https://segmentfault.com/a/11...
注意:配置命令與該文章中略有不同,需要增加一個fastdfs-nginx-module模塊,即下面的最后一行,以實際路徑為准
mkdir -p /usr/local/log/nginx/
./configure \
--prefix=/usr/local/nginx \
--pid-path=/usr/local/nginx/nginx.pid \
--lock-path=/usr/local/nginx.lock \
--error-log-path=/usr/local/nginx/log/error.log \
--http-log-path=/usr/local/nginx/log/access.log \
--add-module=/etc/FastDFS/fastdfs-nginx-module/fastdfs-nginx-module-1.22/src
make && make install
3、修改mod_fastdfs.conf配置文件
vim mod_fastdfs.conf
base_path=/usr/local/fastdfs/tmp
#tracker地址
tracker_server=trackerIP:22122
url_have_group_name = true
store_path0=/usr/local/fastdfs/storage
創建base_path目錄
mkdir /usr/local/fastdfs/tmp
4、修改nginx.conf,添加如下虛擬主機:
server {
listen 8888;
server_name localhost;
location /group1/M00 {
ngx_fastdfs_module;
}
}
5、啟動nginx
四、驗證是否安裝成功
1、上傳文件
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /etc/fdfs/anti-steal.jpg
2、在瀏覽器中輸入http:ip:nginx端口/fastFDS返回的字符串
http://10.10.183.230:8888/group1/M00/00/00/Cgq35mGXUt6AMNkYAABdreSfEnY061_big.jpg
五、異常情況
[2021-11-19 14:55:43] DEBUG - base_path=/usr/local/fastdfs/client, connect_timeout=5, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0
[2021-11-19 14:55:43] ERROR - file: tracker_proto.c, line: 50, server: 10.10.183.230:22122, response status 28 != 0
[2021-11-19 14:55:43] ERROR - file: ../client/tracker_client.c, line: 1077, fdfs_recv_response fail, result: 28
[2021-11-19 14:55:43] ERROR - file: tracker_proto.c, line: 50, server: 10.10.183.230:22122, response status 28 != 0
[2021-11-19 14:55:43] ERROR - file: ../client/tracker_client.c, line: 899, fdfs_recv_response fail, result: 28
tracker_query_storage fail, error no: 28, error info: No space left on device
原因:
報錯原因 tracker.conf 配置項 reserved_storage_space = 20%
解決辦法:
刪除/home/用戶/log日志、/root/log、/var/log