一、配置linux環境
1、新建虛擬機
把上次安裝的CentOS7的文件復制一份,並改名
打開VM》打開虛擬機,選擇剛才復制好的虛擬機,並啟動。這樣做的目的主要是為了保留一份最基礎的母本,為了將來安裝其它組件用。
2、修改主機名
# vi /etc/hosts
#vi /etc/sysconfig/network
3、設置靜態IP為192.168.50.20
# vi /etc/sysconfig/network-scripts/ifcfg-ens33
測試網絡
二、安裝FastDFS環境
1、安裝編譯環境
yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel -y
2、目錄約定
3、下載安裝 libfastcommon
1. cd /usr/local/src 2. git clone https://github.com/happyfish100/libfastcommon.git --depth 1 3. cd libfastcommon 4. ./make.sh && ./make.sh install
4、下載安裝FastDFS
方法1
1. cd /usr/local/src 2. git clone https://github.com/happyfish100/fastdfs.git --depth 1 3. cd fastdfs 4. ./make.sh && ./make.sh install
方法2
1. wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz 2. tar -zxvf V5.05.tar.gz 3. cd fastdfs-5.05 4. ./make.sh 5. ./make.sh install
默認安裝方式安裝后的相應文件與目錄
A、服務腳本:
/etc/init.d/fdfs_storaged /etc/init.d/fdfs_tracker
B、配置文件(這三個是作者給的樣例配置文件) :
/etc/fdfs/client.conf.sample /etc/fdfs/storage.conf.sample /etc/fdfs/tracker.conf.sample
C、命令工具在 /usr/bin/ 目錄下:
fdfs_appender_test fdfs_appender_test1 fdfs_append_file fdfs_crc32 fdfs_delete_file fdfs_download_file fdfs_file_info fdfs_monitor fdfs_storaged fdfs_test fdfs_test1 fdfs_trackerd fdfs_upload_appender fdfs_upload_file stop.sh restart.sh
FastDFS 服務腳本設置的 bin 目錄是 /usr/local/bin, 但實際命令安裝在 /usr/bin/ 下。
FastDFS 服務腳本設置的 bin 目錄是 /usr/local/bin, 但實際命令安裝在 /usr/bin/ 下。
兩種方式:
》 一是修改FastDFS 服務腳本中相應的命令路徑,也就是把 /etc/init.d/fdfs_storaged 和 /etc/init.d/fdfs_tracker 兩個腳本中的 /usr/local/bin 修改成 /usr/bin。
# vim fdfs_trackerd
使用查找替換命令進統一修改:%s+/usr/local/bin+/usr/bin
# vim fdfs_storaged
使用查找替換命令進統一修改:%s+/usr/local/bin+/usr/bin
》 二是建立 /usr/bin 到 /usr/local/bin 的軟鏈接,我是用這種方式。
# ln -s /usr/bin/fdfs_trackerd /usr/local/bin # ln -s /usr/bin/fdfs_storaged /usr/local/bin # ln -s /usr/bin/stop.sh /usr/local/bin # ln -s /usr/bin/restart.sh /usr/local/bin
5、配置FastDFS跟蹤器(Tracker)
# cd /etc/fdfs
# cp tracker.conf.sample tracker.conf # vim tracker.conf
# 配置文件是否不生效,false 為生效 disabled=false # 提供服務的端口(tracker服務器端口(默認22122,一般不修改) ) port=22122 # Tracker 數據和日志目錄地址(根目錄必須存在,子目錄會自動創建) base_path=/fastdfs/tracker
創建tracker基礎數據目錄,即base_path對應的目錄
# mkdir -p /fastdfs/tracker
啟動Tracker
初次成功啟動,會在 /fdfsdfs/tracker/ (配置的base_path)下創建 data、logs 兩個目錄。
可以用這種方式啟動 # /etc/init.d/fdfs_trackerd start 也可以用這種方式啟動,前提是上面創建了軟鏈接,后面都用這種方式 # service fdfs_trackerd start
tracker server 目錄及文件結構 ,Tracker服務啟動成功后,會在base_path下創建data、logs兩個目錄。目錄結構如下:
${base_path} |__data | |__storage_groups.dat:存儲分組信息 | |__storage_servers.dat:存儲服務器列表 |__logs | |__trackerd.log: tracker server 日志文件
查看 FastDFS Tracker 是否已成功啟動 ,22122端口正在被監聽,則算是Tracker服務安裝成功。
# netstat -unltp|grep fdfs
關閉Tracker命令:
# service fdfs_trackerd stop
設置Tracker開機啟動
# chkconfig fdfs_trackerd on
或者:
# vim /etc/rc.d/rc.local
加入配置:
/etc/init.d/fdfs_trackerd start
6、配置 FastDFS 存儲 (Storage)
進入 /etc/fdfs 目錄,復制 FastDFS 存儲器樣例配置文件 storage.conf.sample,並重命名為 storage.conf
# cd /etc/fdfs # cp storage.conf.sample storage.conf
# vim storage.conf
# 配置文件是否不生效,false 為生效 disabled=false # 指定此 storage server 所在 組(卷) group_name=group1
# storage server 服務端口 port=23000
# 心跳間隔時間,單位為秒 (這里是指主動向 tracker server 發送心跳) heart_beat_interval=30 # Storage 數據和日志目錄地址(根目錄必須存在,子目錄會自動生成) base_path=/fastdfs/storage # 存放文件時 storage server 支持多個路徑。這里配置存放文件的基路徑數目,通常只配一個目錄。 store_path_count=1 # 逐一配置 store_path_count 個路徑,索引號基於 0。 # 如果不配置 store_path0,那它就和 base_path 對應的路徑一樣。 store_path0=/fastdfs/file # FastDFS 存儲文件時,采用了兩級目錄。這里配置存放文件的目錄個數。 # 如果本參數只為 N(如: 256),那么 storage server 在初次運行時,會在 store_path 下自動創建 N * N 個存放文件的子目錄。 subdir_count_per_path=256 # tracker_server 的列表 ,會主動連接 tracker_server # 有多個 tracker server 時,每個 tracker server 寫一行 tracker_server=192.168.50.20:22122 # 允許系統同步的時間段 (默認是全天) 。一般用於避免高峰同步產生一些問題而設定。 sync_start_time=00:00 sync_end_time=23:59 # 訪問端口 http.server_port=80
創建Storage基礎數據目錄,對應base_path目錄
# mkdir -p /fastdfs/storage # 這是配置的store_path0路徑 # mkdir -p /fastdfs/file
啟動 Storage
啟動Storage前確保Tracker是啟動的。初次啟動成功,會在 /fastdfs/storage 目錄下創建 data、 logs 兩個目錄。
可以用這種方式啟動 # /etc/init.d/fdfs_storaged start 也可以用這種方式,后面都用這種 # service fdfs_storaged start
查看 Storage 是否成功啟動,23000 端口正在被監聽,就算 Storage 啟動成功。
# netstat -unltp|grep fdfs
關閉Storage命令:
# service fdfs_storaged stop
查看Storage和Tracker是否在通信:
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
設置 Storage 開機啟動
# chkconfig fdfs_storaged on
或者:
# vim /etc/rc.d/rc.local
加入配置:/etc/init.d/fdfs_storaged start
Storage 目錄
同 Tracker,Storage 啟動成功后,在base_path 下創建了data、logs目錄,記錄着 Storage Server 的信息。
在 store_path0 目錄下,創建了N*N個子目錄:
7、文件上傳測試
修改 Tracker 服務器中的客戶端配置文件
# cd /etc/fdfs # cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
# vim client.conf
修改如下配置即可,其它默認。
# Client 的數據和日志目錄 base_path=/fastdfs/client # Tracker端口 tracker_server=192.168.50.20:22122
在linux內部執行如下命令上傳圖片
# wget https://static.cnblogs.com/images/adminlogo.gif
# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf adminlogo.gif
wKgyFFtm9mWAZfJhAAANHkI1RM4732.gif 文件名存下來,一會有用
返回的文件ID由group、存儲目錄、兩級子目錄、fileid、文件后綴名(由客戶端指定,主要用於區分文件類型)拼接而成。
三、安裝Nginx
1、安裝
上面將文件上傳成功了,但我們無法下載。因此安裝Nginx作為服務器以支持Http方式訪問文件。同時,后面安裝FastDFS的Nginx模塊也需要Nginx環境。
Nginx只需要安裝到StorageServer所在的服務器即可,用於訪問文件。
1. cd /usr/local/src
2. wget http://nginx.org/download/nginx-1.14.0.tar.gz #下載
3. tar -zxvf nginx-1.14.0.tar.gz #解壓
4. cd nginx-1.14.0
5. ./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/ #配置
6. make && make install #編譯&& 安裝
2、啟動nginx
# cd /usr/local/nginx/sbin/ # ./nginx 其它命令 # ./nginx -s stop # ./nginx -s quit # ./nginx -s reload
置開機啟動
# vim /etc/rc.local
添加一行:
/usr/local/nginx/sbin/nginx
# 設置執行權限
# chmod 755 rc.local
3、防火牆設置
# vim /etc/sysconfig/iptables
重啟防火牆:
# service iptables restart
4、訪問文件
簡單的測試訪問文件
修改nginx.conf
# vim /usr/local/nginx/conf/nginx.conf 添加如下行,將 /group1/M00 映射到 /fastdfs/file/data location /group1/M00 { alias /fastdfs/file/data; }
# 重啟nginx
# /usr/local/nginx/sbin/nginx -s reload
在瀏覽器訪問之前上傳的圖片、成功。
http://192.168.50.20/group1/M00/00/00/wKgyFFtm9mWAZfJhAAANHkI1RM4732.gif
相關閱讀:
FastDFS 配置 Nginx 模塊,並實現分布式同步-Linux
C# 使用FastDFS 文件服務