架構(gòu)圖
● 如果你公司剛好用這個(gè),那你就會搭建集群
● 涉及到多個(gè)Linux,你可以更進(jìn)一步熟悉一下Linux
● 提升自己駕馭復(fù)雜環(huán)境的能力
建一個(gè)FastDFS分布式文件系統(tǒng)集群,推薦至少部署6個(gè)服務(wù)器節(jié)點(diǎn)。
迷你版Linux沒有圖形界面,占用磁盤及資源小,企業(yè)里面使用的Linux都是沒有圖形界面的Linux,在安裝的時(shí)候,最少要給每一個(gè)虛擬機(jī)分配3.5G的內(nèi)存空間,我這里分配5G,內(nèi)存我這里分配的是512M
① 打開Vmware,點(diǎn)擊創(chuàng)建新的虛擬機(jī)
② 選擇典型安裝
③ 選擇安裝Linux迷你版安裝文件位置
④ 指定虛擬機(jī)名稱及安裝位置
⑤ 為虛擬機(jī)分配磁盤空間
⑥ 為虛擬機(jī)分配內(nèi)存
我是8G內(nèi)存,每個(gè)虛擬機(jī)分配512M,因?yàn)槭敲阅惆妫詢?nèi)存消耗不會太大
⑦ 開啟此虛擬機(jī)
⑧ 開始安裝
⑨ 選擇語言為English
⑩ 打開網(wǎng)絡(luò)連接(重要)
這個(gè)選項(xiàng)點(diǎn)進(jìn)去完成一下就好,其它配置都可以默認(rèn),但是網(wǎng)絡(luò)一定要打開,否則虛擬機(jī)之間無法通訊
? 設(shè)置root用戶密碼為123456
? 創(chuàng)建普通用戶centos,設(shè)置密碼為123456
? 安裝完畢后,重啟安裝的CentOS系統(tǒng)
3. 為迷你版的Linux安裝常用工具庫
由于迷你版Linux缺少一些常用的工具庫,操作起來不方便,推薦安裝如下的工具庫:
• 安裝lrzsz, yum install lrzsz -y
• 安裝wget, yum install wget -y
• 安裝vim, yum install vim -y
• 安裝unzip,yum install unzip -y
• 安裝ifconfig,yum install net-tools -y
yum install lrzsz wget vim unzip net-tools –y
打開撰寫欄,方便批量執(zhí)行命令
4. 按照課件上安裝FastDFS的步驟在6個(gè)服務(wù)器節(jié)點(diǎn)安裝FastDFS
為了方便操作,我們再啟動一次Xshell,一個(gè)Xshell操作Tracker,另一個(gè)操作Storage,將Tracker和Storage分開
• 把/etc/fdfs目錄下的配置文件.sample后綴都去掉
• 修改兩個(gè)tracker服務(wù)器的配置文件:
tracker.conf: 修改一個(gè)地方:
base_path=/opt/fastdfs/tracker #設(shè)置tracker的數(shù)據(jù)文件和日志目錄(需預(yù)先創(chuàng)建)
• 創(chuàng)建存放數(shù)據(jù)的目錄
每兩個(gè)storage server為一組,共兩個(gè)組(group1 和 group2),一個(gè)組內(nèi)有兩個(gè)storage server
① 修改第一組group1的第一個(gè)storage server(修改storage.conf配置文件)
group_name=group1 #組名,根據(jù)實(shí)際情況修改,值為 group1 或 group2
base_path=/opt/fastdfs/storage #設(shè)置storage的日志目錄(需預(yù)先創(chuàng)建)
store_path0=/opt/fastdfs/storage/files #存儲路徑
tracker_server=192.168.235.129:22122 #tracker服務(wù)器的IP地址和端口號,配2個(gè)tracker_server=192.168.235.130:22122
② 第一個(gè)組的第二個(gè)storage按照相同的步驟操作
或者將第一組的配置文件下載到桌面上,然后上傳覆蓋第一組的第二個(gè)storage
③ 第二組的兩個(gè)storage也按照相同的步驟操作;唯一的區(qū)別是group_name=group2
可以在桌面上對第一個(gè)組的storage文件進(jìn)行修改,將組名修改為group2,然后上傳覆蓋
至此,一個(gè)FastDFS的分布式文件系統(tǒng)集群就搭建好了。
④ 注意:配置文件中不要出現(xiàn)中文,另外別忘了創(chuàng)建配置文件中指定的目錄
⑤ 啟動兩個(gè)tracker,再啟動四個(gè)storage
⑥ 關(guān)閉6個(gè)Linux防火墻,通過09-fastdfs-java的代碼進(jìn)行測試
修改配置文件為兩個(gè)tracker
測試負(fù)載均衡:tracker.conf文件 (修改 store_lookup=0 表示輪訓(xùn)策略)
① 先完成4個(gè)storage server的Nginx訪問
這4個(gè)Nginx需要去fastDFS找對應(yīng)的文件,所以需要安裝FastDFS的Nginx擴(kuò)展模塊
A、 配置帶有FastDFS擴(kuò)展模塊的Nginx
在四個(gè)storage server上安裝Nginx,并且加入FastDFS擴(kuò)展模塊;
修改兩組4個(gè)storage的nginx擴(kuò)展模塊配置文件 mod_fastdfs.conf
base_path=/opt/fastdfs/nginx_mod #保存日志目錄(需提前創(chuàng)建)
tracker_server=192.168.230.129:22122 #tracker服務(wù)器的IP地址以及端口號
tracker_server=192.168.230.130:22122
group_name=group1 #當(dāng)前服務(wù)器的group名,第二組應(yīng)配置為group2
url_have_group_name=true #文件url中是否有g(shù)roup名
store_path_count=1 #存儲路徑個(gè)數(shù),需要和store_path個(gè)數(shù)匹配(一般不用改)
store_path0=/opt/fastdfs/storage/files #存儲路徑
group_count = 2 #設(shè)置組的個(gè)數(shù)
在末尾增加2個(gè)組的具體信息:
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs/storage/files
[group2]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs/storage/files
B、 第一組的第二臺和上面的配置一樣
C、 第二組的兩臺只需要把group_name=group2即可
D、 至此,mod_fastdfs.conf就配置好了。
② 配置兩組4個(gè)storage的nginx攔截請求路徑:
location ~ /group[1-9]/M0[0-9] {
ngx_fastdfs_module;
}
至此4個(gè)storage服務(wù)器上的Nginx就搭建配置OK了
然后可以進(jìn)行測試:
重啟storage,啟動Nginx
http://192.168.119.128:80/group1/M00/00/00/wKh3jVx6FUCARyK2AAAANaS4cxw338.txt
http://192.168.92.132:80/group1/M00/00/00/wKhchFv7xQeAQbrBAAAALDPVPvc081.txt
http://192.168.92.133:80/group1/M00/00/00/wKhchFv7xQeAQbrBAAAALDPVPvc081.txt
http://192.168.92.134:80/group1/M00/00/00/wKhchFv7xQeAQbrBAAAALDPVPvc081.txt
注意:每一臺都可以訪問到,就算是當(dāng)前組中沒有改文件,因?yàn)橄驗(yàn)g覽器中發(fā)送請求的時(shí)候
交給Nginx進(jìn)行l(wèi)ocation匹配
匹配上之后調(diào)用FastDFS的擴(kuò)展模塊
擴(kuò)展模塊會讀取擴(kuò)展模塊配置文件mod_fast.conf
通過擴(kuò)展模塊配置文件,找到對應(yīng)的Tracker,從而找到對應(yīng)的文件
③ 在兩個(gè)tracker server安裝Nginx
這兩個(gè)Nginx只需要做負(fù)載均衡,不要找文件,所以不需要安裝擴(kuò)展模塊
④ 配置兩個(gè)tracker server服務(wù)器上的Nginx訪問
部署配置nginx負(fù)載均衡:
upstream fastdfs_storage_server {
server 192.168.92.131:80;
server 192.168.92.132:80;
server 192.168.92.133:80;
server 192.168.92.134:80;
}
#nginx攔截請求路徑:
location ~ /group[1-9]/M0[0-9] {
proxy_pass http://fastdfs_storage_server;
}
至此,兩個(gè)tracker服務(wù)器的Nginx就搭建配置OK了。
啟動兩個(gè)tracker服務(wù)器的Nginx進(jìn)行測試。
http://192.168.92.129:80/group1/M00/00/00/wKhchFv7xQeAQbrBAAAALDPVPvc081.txt
http://192.168.92.130:80/group1/M00/00/00/wKhchFv7xQeAQbrBAAAALDPVPvc081.txt
⑤ 部署前端用戶訪問入口服務(wù)器,該Nginx負(fù)載均衡到后端2個(gè)tracker server
這個(gè)Nginx也只需要做負(fù)載均衡,不要找文件,所以不需要安裝擴(kuò)展模塊,可以對Windows上的的Nginx進(jìn)行配置
部署配置nginx負(fù)載均衡:
upstream fastdfs_tracker_server {
server 192.168.92.129:80;
server 192.168.92.130:80;
}
#nginx攔截請求路徑:
location ~ /group[1-9]/M0[0-9] {
proxy_pass http://fastdfs_tracker_server;
}
訪問:http://127.0.0.1:80/group1/M00/00/00/wKhchFv7xQeAQbrBAAAALDPVPvc081.txt
至此,一個(gè)三層結(jié)構(gòu)的Nginx訪問架構(gòu)就搭建配置OK了。為了保證高可用性,一般在入口出,會添加一個(gè)備用Nginx上,中間通過一個(gè)keepAlive軟件連接。
**最后,為了讓服務(wù)能正常連接tracker,請關(guān)閉所有機(jī)器的防火墻:**
systemctl status firewalld
systemctl disable firewalld
systemctl stop firewalld