CentOS7.3搭建FastDFS V5.11(三)
1.測試
前面兩篇博文已對FastDFS的安裝和配置,做了比較詳細的講解。FastDFS
的基礎模組都搭好了,現在開始測試下載。
1.1 配置客戶端
同樣的,需要修改客戶端的配置檔案:
/etc/fdfs/client.conf
base_path=/opt/fastdfs_tracker #tracker伺服器檔案路徑
tracker_server=172.20.132.57:22122 #tracker伺服器IP地址和埠號
http.tracker_server_port=8080 # tracker 伺服器的 http埠號,必須和tracker的設定對應起來
修改完成的檔案為:
connect_timeout=30
network_timeout=60
base_path=/opt/fastdfs_tracker
tracker_server=172.20.132.57:22122
log_level=info
use_connection_pool = false
connection_pool_max_idle_time = 3600
load_fdfs_parameters_from_tracker=false
use_storage_id = false
storage_ids_filename = storage_ids.conf
http.tracker_server_port=8080
1.2 模擬上傳
確定圖片位置後,我們輸入上傳圖片命令:
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /root/1.jpg #這後面放的是圖片的位置
成功後會返回圖片的路徑:
[root@sybmfw12-lnsy fastdfs-5.11]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /root/2.png
group1/M00/00/00/rBSEOVoC2QCAJVdoAAFeVJMpopw987.png
組名:group1
磁碟:M00
目錄:00/00
檔名稱:rBSEOVoC2QCAJVdoAAFeVJMpopw987.png
我們上傳的圖片會被上傳到我們建立的storage_data
目錄下,讓我們去看看:
[root@sybmfw12-lnsy ~]# cd /opt/fastdfs_storage_data/data/
[root@sybmfw12-lnsy data]# ls
00 04 08 0C 10 14 18 1C 20 24 28 2C 30 34 38 3C 40 44 48 4C 50 54 58 5C 60 64 68 6C 70 74 78 7C 80 84 88 8C 90 94 98 9C A0 A4 A8 AC B0 B4 B8 BC C0 C4 C8 CC D0 D4 D8 DC E0 E4 E8 EC F0 F4 F8 FC
01 05 09 0D 11 15 19 1D 21 25 29 2D 31 35 39 3D 41 45 49 4D 51 55 59 5D 61 65 69 6D 71 75 79 7D 81 85 89 8D 91 95 99 9D A1 A5 A9 AD B1 B5 B9 BD C1 C5 C9 CD D1 D5 D9 DD E1 E5 E9 ED F1 F5 F9 FD
02 06 0A 0E 12 16 1A 1E 22 26 2A 2E 32 36 3A 3E 42 46 4A 4E 52 56 5A 5E 62 66 6A 6E 72 76 7A 7E 82 86 8A 8E 92 96 9A 9E A2 A6 AA AE B2 B6 BA BE C2 C6 CA CE D2 D6 DA DE E2 E6 EA EE F2 F6 FA FE
03 07 0B 0F 13 17 1B 1F 23 27 2B 2F 33 37 3B 3F 43 47 4B 4F 53 57 5B 5F 63 67 6B 6F 73 77 7B 7F 83 87 8B 8F 93 97 9B 9F A3 A7 AB AF B3 B7 BB BF C3 C7 CB CF D3 D7 DB DF E3 E7 EB EF F3 F7 FB FF
[root@sybmfw12-lnsy data]# ls 00/
00 04 08 0C 10 14 18 1C 20 24 28 2C 30 34 38 3C 40 44 48 4C 50 54 58 5C 60 64 68 6C 70 74 78 7C 80 84 88 8C 90 94 98 9C A0 A4 A8 AC B0 B4 B8 BC C0 C4 C8 CC D0 D4 D8 DC E0 E4 E8 EC F0 F4 F8 FC
01 05 09 0D 11 15 19 1D 21 25 29 2D 31 35 39 3D 41 45 49 4D 51 55 59 5D 61 65 69 6D 71 75 79 7D 81 85 89 8D 91 95 99 9D A1 A5 A9 AD B1 B5 B9 BD C1 C5 C9 CD D1 D5 D9 DD E1 E5 E9 ED F1 F5 F9 FD
02 06 0A 0E 12 16 1A 1E 22 26 2A 2E 32 36 3A 3E 42 46 4A 4E 52 56 5A 5E 62 66 6A 6E 72 76 7A 7E 82 86 8A 8E 92 96 9A 9E A2 A6 AA AE B2 B6 BA BE C2 C6 CA CE D2 D6 DA DE E2 E6 EA EE F2 F6 FA FE
03 07 0B 0F 13 17 1B 1F 23 27 2B 2F 33 37 3B 3F 43 47 4B 4F 53 57 5B 5F 63 67 6B 6F 73 77 7B 7F 83 87 8B 8F 93 97 9B 9F A3 A7 AB AF B3 B7 BB BF C3 C7 CB CF D3 D7 DB DF E3 E7 EB EF F3 F7 FB FF
[root@sybmfw12-lnsy data]# ls 00/00/
rBSEOVoC2QCAJVdoAAFeVJMpopw987.png
果然通過剛剛返回的路徑,我們成功找到了圖片。
我們仔細看一下,實際檔案儲存路徑下有建立好的多級目錄。data下有256個1級目錄,每級目錄下又有256個2級子目錄,總共65536個檔案,新寫的檔案會以hash的方式被路由到其中某個子目錄下,然後將檔案資料直接作為一個本地檔案儲存到該目錄中。
如果要訪問剛上傳的圖片,我們得需要結合nginx來實現
1.4 HTTP請求不能訪問檔案的原因
我們在使用FastDFS
部署一個分散式檔案系統的時候,通過FastDFS
的客戶端API來進行檔案的上傳、下載、刪除等操作。同時通過FastDFS的HTTP伺服器來提供HTTP服務。但是FastDFS
的HTTP服務較為簡單,無法提供負載均衡等高效能的服務,所以FastDFS的開發者——淘寶的架構師餘慶同學,為我們提供了Nginx上使用的FastDFS
模組(也可以叫FastDFS的Nginx模組)。
FastDFS
通過Tracker伺服器,將檔案放在Storage伺服器儲存,但是同組之間的伺服器需要複製檔案,有延遲的問題.假設Tracker伺服器將檔案上傳到了172.20.132.57,檔案ID已經返回客戶端,這時,後臺會將這個檔案複製到172.20.132.57,如果複製沒有完成,客戶端就用這個ID在172.20.132.57取檔案,肯定會出現錯誤。這個fastdfs-nginx-module
可以重定向連線到源伺服器取檔案,避免客戶端由於複製延遲的問題,出現錯誤。
正是這樣,FastDFS需要結合nginx,所以取消原來對HTTP的直接支援。
2. FastDFS的nginx模組安裝
在安裝nginx之前要安裝nginx所需的依賴lib:
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel
2.2 安裝nginx並新增fastdfs-nginx-module
解壓nginx,和fastdfs-nginx-module:
tar -zxvf nginx-1.10.3.tar.gz
unzip fastdfs-nginx-module-master.zip
解壓後進入nginx
目錄編譯安裝nginx
,並新增fastdfs-nginx-module
:
./configure --prefix=/usr/local/nginx --add-module=/root/fastdfs-nginx-module-master/src #解壓後fastdfs-nginx-module所在的位置
如果配置不報錯的話,就開始編譯:
make
make install
如果報錯的話,很可能是版本的原因,在我的第二篇博文中提供了我測試成功不報錯的版本下載。
nginx的預設目錄是/usr/local/nginx
,安裝成功後檢視:
[root@sybmfw12-lnsy ~]# ll /usr/local/nginx/
drwx------. 2 nobody root 4096 11月 8 13:10 client_body_temp
drwxr-xr-x. 2 root root 4096 11月 8 15:22 conf
drwx------. 2 nobody root 4096 11月 8 13:10 fastcgi_temp
drwxr-xr-x. 2 root root 4096 11月 8 13:00 html
drwxr-xr-x. 2 root root 4096 11月 8 13:10 logs
drwx------. 2 nobody root 4096 11月 8 13:10 proxy_temp
drwxr-xr-x. 2 root root 4096 11月 8 13:00 sbin
drwx------. 2 nobody root 4096 11月 8 13:10 scgi_temp
drwx------. 2 nobody root 4096 11月 8 13:10 uwsgi_temp
2.3 配置storage nginx
修改nginx.conf:
修改監聽埠 listen 9999, 新增location
server {
listen 9991;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
location ~/group1/M00 {
root /opt/fastdfs_storage/data;
ngx_fastdfs_module;
}
location = /50x.html {
root html;
}
}
然後進入FastDFS安裝時的解壓過的目錄,將http.conf
和mime.types
拷貝到/etc/fdfs
目錄下:
[root@sybmfw12-lnsy conf]# cp http.conf mime.types /etc/fdfs/
[root@sybmfw12-lnsy conf]# cp mime.types /etc/fdfs/
另外還需要把fastdfs-nginx-module
安裝目錄中src目錄下的mod_fastdfs.conf
也拷貝到/etc/fdfs
目錄下:
[root@sybmfw12-lnsy src]# cp mod_fastdfs.conf /etc/fdfs/
對剛剛拷貝的mod_fastdfs.conf
檔案進行修改:
/etc/fdfs/mod_fastdfs.conf
base_path=/opt/fastdfs_storage #儲存日誌目錄
tracker_server=172.20.132.57:22122 #tracker伺服器的IP地址以及埠號
storage_server_port=23000 #storage伺服器的埠號
url_have_group_name = true #檔案 url 中是否有 group 名
store_path0=/opt/fastdfs_storage_data #儲存路徑
group_count = 1 #設定組的個數
在檔案的最後,設定group
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs_storage_data
建立M00至storage
儲存目錄的符號連線:
ln -s /opt/fastdfs_storage_data/data/ /opt/fastdfs_storage_data/data/M00
啟動nginx:
/usr/local/nginx/sbin/nginx
ngx_http_fastdfs_set pid=8142
[root@sybmfw12-lnsy src]# curl localhost:9991
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
恭喜你,storage的nginx已配置成功。接下來,我們還要繼續配置tracker的nginx。
2.4 配置tracker nginx
在nginx.cfg裡在新增一個虛擬主機
upstream fdfs_group1 {
server 127.0.0.1:9991;
}
server {
listen 80;
server_name localhost;
location /group1/M00 {
proxy_pass http://fdfs_group1;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
重啟nginx
/usr/local/nginx/sbin/nginx -s reload
ngx_http_fastdfs_set pid=8141
[root@sybmfw12-lnsy ~]# curl localhost
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
2.6 HTTP測試
可以成功訪問。
現在我們再去訪問一下,原來我們上傳過的檔案:
172.20.132.57/group1/M00/00/00/rBSEOVoCsSWAZG_WAAFeVJMpopw658.png
這個時候已經能成功訪問。感謝你能堅持到現在,FastDFS
已部署完成。
貼上完整nginx
配置
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 9991;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
location ~/group1/M00 {
root /opt/data/fastdfs_storage/data;
ngx_fastdfs_module;
}
location = /50x.html {
root html;
}
}
upstream fdfs_group1 {
server 127.0.0.1:9991;
}
server {
listen 80;
server_name localhost;
location /group1/M00 {
proxy_pass http://fdfs_group1;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
不要讓懶惰佔據你的大腦,不讓要妥協拖跨你的人生。青春就是一張票,能不能趕上時代的快車,你的步伐掌握在你的腳下,good luck
相關文章
- CentOS7.3搭建FastDFS V5.11(一)CentOSAST
- CentOS7.3搭建FastDFS V5.11(二)CentOSAST
- 三、 FastDFS功能原理AST
- DFS 避坑手記 (docker 搭建 fastDFS 教程 / 在 CentOS 上搭建 FastDFS+nginx)DockerASTCentOSNginx
- 分散式檔案儲存FastDFS(三)FastDFS配置分散式AST
- 品味FastDFS~第三回 專案中的FastDFSAST
- CentOS7.3 編譯搭建 lamp 環境CentOS編譯LAMP
- centos7.3搭建lamp實現使用wordpressCentOSLAMP
- 搭建FastDFS分散式儲存環境AST分散式
- 使用tomcat搭建Jenkins環境(centos7.3)TomcatJenkinsCentOS
- FastDFS+Nginx搭建分散式圖片儲存ASTNginx分散式
- 騰訊雲centos7下搭建fastDFS+nginxCentOSASTNginx
- FastDFS與Nginx的搭建及遇到的問題ASTNginx
- FastDFS視訊教程-如何用FastDFS一步步搭建檔案管理系統AST
- 【FastDFS】小夥伴們說在CentOS 8伺服器上搭建FastDFS環境總報錯?ASTCentOS伺服器
- 搭建FastDFS分散式儲存環境(使用Nginx模組)AST分散式Nginx
- 分散式檔案系統fastdfs_搭建和基本使用分散式AST
- FastDFS一步步搭建儲存伺服器AST伺服器
- FastDFS概述AST
- FastDFS安裝fastdfs-nginx-module和nginxASTNginx
- centos7.3安裝redisCentOSRedis
- FastDFS NET示例AST
- CentOS7.3怎麼安裝?使用DVD ISO映象安裝CentOS7.3的方法CentOS
- CentOS7.3 安裝 MySQL 5.7.24CentOSMySql
- fastdfs資料遷移以及fastdfs問題排查記錄AST
- fastdfs管理工具Go-fastdfs-web 安裝教程ASTGoWeb
- FastDFS 技術整理AST
- 一、 Fastdfs介紹AST
- fastdfs詳細配置AST
- FastDFS簡易概括AST
- 品味FastDFS~目錄AST
- FastDFS-nginx外掛作為FastDFS客戶端訪問ASTNginx客戶端
- FastDFS的配置、部署與API使用解讀(1)Get Started with FastDFSASTAPI
- CentOS7.3 安裝 MySQL5.7CentOSMySql
- 分散式檔案儲存FastDFS(七)FastDFS配置檔案詳解分散式AST
- FastDFS的配置、部署與API使用解讀(7)Nginx的FastDFS模組ASTAPINginx
- Oracle RAC搭建(三)Oracle
- FastDFS簡介,運用AST