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