1.確保已安裝了gcc,unzip(基本工具)
2.安裝libfastcommon-master
步驟:
unzip libfastcommon-master.zip
cd libfastcommon-master
./make.sh
./make.sh install
3.安裝fastdfs-master
步驟:
unzip fastdfs-master-V5.05.zip
cd fastdfs-master
./make.sh
./make.sh install
4.配置並啓動FastDFS
4.1配置tracker服務器
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
vi /etc/fdfs/tracker.conf
# 修改的內容如下:
disabled=false # 啓用配置文件
port=22122 # tracker服務器端口(默認22122)
base_path=/fastdfs/tracker # 存儲日誌和數據的根目錄
新建目錄: /fastdfs/tracker
關閉防火牆: chkconfig iptables off
啓動tracker服務器: /etc/init.d/fdfs_trackerd start
停止tracker服務器: /etc/init.d/fdfs_trackerd stop
檢查FastDFS Tracker Server是否啓動成功:
ps -ef | grep fdfs_trackerd
設置tracker服務開機啓動:
chkconfig fdfs_trackerd on
備註:由於系統是ubuntu,無法使用chkconfig配置開機啓動,centos無此問題,尚未解決!
4.2配置storage服務器:
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
vi /etc/fdfs/storage.conf
# 修改的內容如下:
disabled=false # 啓用配置文件
port=23000 # storage服務端口
base_path=/fastdfs/storage # 數據和日誌文件存儲根目錄
store_path0=/fastdfs/storage # 第一個存儲目錄
tracker_server=192.168.56.101:22122 # tracker服務器IP和端口
http.server_port=8888 # http訪問文件的端口
新建目錄: /fastdfs/storage
關閉防火牆: chkconfig iptables off
啓動storage服務器:/etc/init.d/fdfs_storaged start
停止storage服務器:/etc/init.d/fdfs_storaged stop
檢查FastDFS Tracker Server是否啓動成功:
ps -ef | grep fdfs_storaged
設置storage服務開機啓動:
chkconfig fdfs_storaged on
備註:同上
5.測試FastDFS
5.1配置Tracker客戶端
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
vi /etc/fdfs/client.conf
# 修改以下配置,其它保持默認
base_path=/fastdfs/tracker
tracker_server=192.168.56.101:22122
5.2執行客戶端上傳命令
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/eric/test1.jpg
group1/M00/00/00/wKg4ZVh8U-SANp6OAAHhOIDwENQ234.jpg
能返回以上文件ID,說明文件已經上傳成功
6使用nginx訪問FastDFS
6.1在所有storage節點安裝fastdfs-nginx-module
unzip fastdfs-nginx-module-master.zip
6.2安裝Nginx
centos下直接運行yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
但由於ubuntu無法這樣操作,所以我是最後一直報缺少pcre庫,先是通過sudo apt search pcre查詢庫,再通過sudo apt-get install libpcre3 libpcre3-dev安裝依賴庫解決了,當然,安裝過程中一直有沒權限建立文件/文件夾就不提了
注意:在執行./configure配置nginx參數的時候,需要將fastdfs-nginx-moudle源碼作爲模塊編譯進去:
進入nginx-1.10.0.tar.gz解壓後的目錄
./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx --add-module=/usr/local/模塊存放位置/fastdfs-nginx-module-master/src
編譯並安裝:
make && make install
啓動、停止、重啓
# 1.啓動nginx
nginx (通過絕對路徑--/usr/bin/nginx--啓動的nginx,因爲系統中有安裝其他nginx,但是我不想改哪個nginx,所以重新安裝nginx,不同的路徑,還好最後沒影響)
# 可通過ps -ef | grep nginx查看nginx是否已啓動成功
# 2.停止nginx
nginx -s stop
nginx亦未配置開機自啓
7配置nginx與FastDFS關聯配置文件
複製 fastdfs-nginx-module 源碼中的配置文件到/etc/fdfs 目錄, 並修改
cp /usr/local/mao/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/
vi /etc/fdfs/mod_fastdfs.conf
修改以下配置:
connect_timeout=10 # 客戶端訪問文件連接超時時長(單位:秒)
base_path=/tmp # 臨時目錄
tracker_server=192.168.56.101:22122 # tracker服務IP和端口
storage_server_port=23000 # storage服務端口
group_name=group1 # 組名
url_have_group_name=true # 訪問鏈接前綴加上組名
store_path0=/fastdfs/storage # 文件存儲路徑
複製 FastDFS 的部分配置文件到/etc/fdfs 目錄
cd /usr/local/mao/fastdfs-master/conf/
cp http.conf mime.types /etc/fdfs/
在/fastdfs/storage文件存儲目錄下創建軟連接,將其鏈接到實際存放數據的目錄
ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00
配置nginx訪問storage文件
vi /opt/nginx/conf/nginx.conf
user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8888;
server_name localhost;
location ~/group([0-9])/M00 {
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
8啓動測試
nginx -s reload
啓動nginx後,如果打印出ngx_http_fastdfs_set pid=xxx,表示fastdfs-nginx-module模塊加載成功了,xxx表示模塊的進程ID。
如果報:
nginx: [error] open() "/opt/nginx/logs/nginx.pid" failed (2: No such file or directory)
則執行:nginx -c /opt/nginx/conf/nginx.conf
成功後訪問ip:8888/ 頁面出現welcome to nginx! 就可以通過ip:8888/00/00/xxxxxxxxxxxxxxxxxxxxx.jpg訪問圖片資源了
總結:如果是centos配置並且服務器本來沒有nginx的話,那直接安裝上面一步步來就很輕鬆了,如果是ubuntu並且服務器本來就有nginx的話,那可能需要確認的就多了,比如原來nginx啓動和安裝的位置,要保證不衝突,其次各個依賴庫的安裝,最後絕對路徑下啓動以及開機自啓的問題