先準備好FastDFS相關的包
檢查linux是否聯網,通過ping一個web網址實作。
如果沒有聯網,先ifconfig檢視下此時的ip
使用指令:ifconfig ens33 192.168.1.64 netmask 255.255.255.0 #将ens33的IP改為192.168.1.64。
檢查一下你的主機網卡數量及名稱,相關資訊在 /etc/sysconfig/network-scripts/ 下。
使用vim編輯你需要設定IP的網卡,這裡我修改ifcfg-eth0。
修改配置: `
重新開機網卡:service network restart #centos6的重新開機網卡的指令,systemctl restart network #centos7的網卡重新開機。
再次ping一個網址檢驗網絡。
開始安裝
檢查系統是否有安裝GCC
gcc –version
安裝GCC
yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake
yum -y install wget httpd-tools vim
安裝libfastcommon
進入libfastcommon壓縮包目錄解壓,編譯,安裝
tar -zxvf libfastcommonV1.0.7.tar.gz
進入解壓的libfastcommon-1.0.7目錄,編譯
./make.sh
安裝
./make.sh install
最後,libfastcommon.so檔案到usr/lib下 ,請按照自己的實際檔案路徑修改被複制路徑
cp /data/fastDFS/software/libfastcommon-1.0.7/src/libfastcommon.so /usr/lib
安裝FastDFS
解壓FastDFS_v5.05.tar.gz,然後編譯安裝FastDFS
tar -zxvf FastDFS_v5.05.tar.gz
./make.sh
./make.sh install
安裝成功後将目錄conf内的檔案拷貝到/etc/fdfs目錄下:
cp /data/fastDFS/software/FastDFS/conf/* /etc/fdfs/
安裝tracker
進入/etc/fdfs目錄,修改tracker.conf檔案。如果不存在,就拷貝tracker.conf.sample檔案為tracker.conf,然後再修改:
base_path=/home/yuqing/fastdfs >>> base_path=/home/logs/fastdfs (注解:日志檔案)
http.server_port=8080 >>> http.server_port=80 (注解:端口,80是友善預設)
store_group=group1 (注解:組名)
其中,/home/logs/fastdfs目錄如果不存在,就建立一個。
之後,就啟動tracker,并檢視是啟動成功(出現如下提示,表示啟動成功):restart重新開機
fdfs_trackerd /etc/fdfs/tracker.conf start
netstat -unltp | grep tracker
安裝storage
由于storage和tracker運作的都是fastDFS程式,每一台伺服器都部署一台fasfDFS,一台伺服器是tracker,一台是storage
修改storage.conf檔案。如果不存在,就拷貝storage.conf.sample檔案為storage.conf,然後再修改:
複制代碼
base_path=/home/yuqing/fastdfs >>> base_path=/home/logs/storage (日志路徑)
store_path0=/home/yuqing/fastdfs >>> store_path0=/home/data/storage (實際儲存檔案路徑,可以配置多個)
tracker_server=192.168.209.121:22122 >>> tracker_server=192.168.2.231:22122 (連接配接tracker伺服器位址)
group_name=group1 (必須和tracker的組名相同)
http.server_port=80 (這個端口也要改)
複制代碼
其中,如果/home/logs/storage和/home/data/storage不存在,就建立該目錄
然後,就啟動storage,并檢視是否成功(出現如下提示,表示啟動成功):
fdfs_storaged /etc/fdfs/storage.conf start
netstat -unltp | grep storage
最後,檢視tracker和storage是不是在通信:
fdfs_monitor /etc/fdfs/storage.conf
如下提示,出現ACTIVE,表示二者均正常啟動,至此就可以進行上傳檔案測試了。
測試圖檔上傳
FastDFS提供一個檔案上傳指令:usr/bin/fdfs_test 測試檔案上傳。測試上傳需要連接配接tracker伺服器,連接配接storage伺服器。是以需要指定一個配置檔案:client.conf配置檔案,通過Client.conf連接配接tracker伺服器。
修改/etc/fdfs下client.conf
base_path=/home/logs/client (日志目錄)
tracker_server=192.168.2.231:22122 (tracker端口)
測試指令
/usr/bin/fdfs_test /etc/fdfs/client.conf upload anti-steal.jpg
安裝Nginx。友善外部網絡的通路。
#PCRE pcre-devel 安裝
yum install -y pcre pcre-devel
#zlib 安裝
yum install -y zlib zlib-devel
#OpenSSL 安裝
yum install -y openssl openssl-devel
tar -zxvf nginx-1.12.1.tar.gz
cd nginx-1.12.1
./configure
make
make install
修改/fastdfs-nginx-module/src/config檔案。去掉所有的local(三個)
拷貝usr/lib64目錄下庫檔案libfdfsclient.so
cp /usr/lib64/libfdfsclient.so /usr/lib
在nginx安裝目錄下執行如下指令:把module添加nginx中。通過設定安裝參數方式添加子產品。
cd nginx-1.12.1
./configure --add-module=…/fastdfs-nginx-module/src
重新安裝編譯
make && make install
檢視Nginx的子產品
/usr/local/nginx/sbin/nginx -V
複制 fastdfs-nginx-module 源碼中的配置檔案到/etc/fdfs 目錄, 并修改
cd fastdfs-nginx-module/src
cp mod_fastdfs.conf /etc/fdfs/
進入/etc/fdfs/修改mod_fastdfs.conf
# 連接配接逾時時間
connect_timeout=10
# Tracker Server
tracker_server=192.168.2.231:22122
# StorageServer 預設端口
storage_server_port=23000
# 如果檔案ID的uri中包含/group**,則要設定為true
url_have_group_name = true
# Storage 配置的store_path0路徑,必須和storage.conf中的一緻
store_path0=/home/data/storage
# the base path to store log files
base_path=/home/logs/storage
配置iNginx ,進入/usr/local/nginx/conf目錄下修改nginx.conf
注意:無論你在哪解壓安裝的。必須進這個目錄/usr/local/nginx/conf下修改nginx.conf
vim nginx.conf
在80端口下添加fastdfs-nginx子產品
location ~/group([0-9])/M00 {
ngx_fastdfs_module;
}
注意:
listen 80 端口值是要與 /etc/fdfs/storage.conf 中的 http.server_port=80 (前面改成80了)相對應。如果改成其它端口,則需要統一,同時在防火牆中打開該端口。
location 的配置,如果有多個group則配置location ~/group([0-9])/M00 ,沒有則不用配group。
在檔案存儲目錄下建立軟連接配接,将其連結到實際存放資料的目錄,注意這個檔案存儲的位置後面多個data目錄是系統自動生成的
ln -s /home/data/storage/data /home/data/storage/data/M00
啟動nginx
#啟動nginx
cd /usr/local/nginx/sbin/
./nginx 直接啟動/usr/local/nginx/sbin/nginx
#設定開機啟動
vim /etc/rc.local
/usr/local/nginx/sbin/nginx
#設定執行權限
chmod 755 rc.local
檢視Nginx是否啟動
ps -ef | grep nginx
OK記得雲服務的安全組 和防火牆設定需要方通 80、22122、 23000
打開3306端口:firewall-cmd --add-port=3306/tcp --permanent firewall:
systemctl start firewalld.service#啟動firewall
systemctl stop firewalld.service#停止firewall
systemctl disable firewalld.service#禁止firewall開機啟動
在位址欄中通路成功 http://192.175.231.128/group1/M00/00/00/rBAACVzBeU2AQBKJAAOHDqS1H9o350.jpg
java代碼裡面使用
pom檔案:
<dependencies>
<dependency>
<groupId>org.csource.fastdfs</groupId>
<artifactId>fastdfs</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
配置檔案:fdfs_client.conf。主要修改裡面的tracker_server。
# connect timeout in seconds
# default value is 30s
connect_timeout=30
# network timeout in seconds
# default value is 30s
network_timeout=60
# the base path to store log files
base_path=/home/fastdfs
# tracker_server can ocur more than once, and tracker_server format is
# "host:port", host can be hostname or ip address
tracker_server=192.168.254.133:22122
#standard log level as syslog, case insensitive, value list:
### emerg for emergency
### alert
### crit for critical
### error
### warn for warning
### notice
### info
### debug
log_level=info
# if use connection pool
# default value is false
# since V4.05
use_connection_pool = false
# connections whose the idle time exceeds this time will be closed
# unit: second
# default value is 3600
# since V4.05
connection_pool_max_idle_time = 3600
# if load FastDFS parameters from tracker server
# since V4.05
# default value is false
load_fdfs_parameters_from_tracker=false
# if use storage ID instead of IP address
# same as tracker.conf
# valid only when load_fdfs_parameters_from_tracker is false
# default value is false
# since V4.05
use_storage_id = false
# specify storage ids filename, can use relative or absolute path
# same as tracker.conf
# valid only when load_fdfs_parameters_from_tracker is false
# since V4.05
storage_ids_filename = storage_ids.conf
#HTTP settings
http.tracker_server_port=80
#use "#include" directive to include HTTP other settiongs
##include http.conf
測試檔案:
public static void main(String[] args) throws FileNotFoundException, IOException, Exception {
//加載配置檔案
ClientGlobal.init("G:\\666\\shenbin\\fastDFSdemo\\src\\main\\resources\\fdfs_client.conf");
//建構一個管理者用戶端
TrackerClient client=new TrackerClient();
//連結管理者服務端
TrackerServer trackerServer = client.getConnection();
//聲明存儲的服務端
StorageServer strStorageServer=null;
//擷取存儲伺服器的用戶端對象
StorageClient storageClient = new StorageClient(trackerServer, strStorageServer);
//檔案上傳
String[] strings = storageClient.upload_file("G:\\666\\system.ico", "ico", null);
//顯示上傳的結果file_id
for(String str:strings) {
System.out.println(str);
}
}