docker+fastdfs+nginx 實現分布式大文件存儲系統以及視頻緩存播放


廢話不多說,直接開擼

首先是一些准備工作:


1.關閉防火牆 

service iptables stop

 

--- fastdfs雖然在docker部署,但是使用的是主機網絡,所以關閉防火牆。

2  下載fastdfs鏡像

docker pull season/fastdfs

3

cd /var

mkdir /fdfs

 

所有的文件存放在/var/fdfs中 目錄清晰 

3.1

 下載nginx

wget http://nginx.org/download/nginx-1.15.9.tar.gz

3.2 

安裝git  直接去github上下載所需要的包也可以

 

yum install git
git clone https://github.com/happyfish100/fastdfs.git
git clone https://github.com/happyfish100/libfastcommon.git

git clone https://github.com/happyfish100/fastdfs-nginx-module.git
 

下圖三個文件都需要下載

3.3 解壓nginx

tar -zxvf nginx-1.15.9.tar.gz 
//新建文件夾 存放fastdfs配置文件
mkdir fdfs_conf

目錄如下

4 至此准備工作已經OK,接下來就是重點了,如何配置fastdfs以及整合nginx

4.1 啟動一個臨時的tracker 拷貝storage.conf tracker.conf 至/var/fdfs/fdfs_conf:

 

docker run  -d --name tracker  --net=host season/fastdfs tracker
docker ps 
//查詢到容器id
docker cp 404(容器ID):/fdfs_conf/tracker.conf `pwd`(當前路徑)
docker cp 404(容器ID):/fdfs_conf/storage.conf `pwd`(當前路徑)

 

 

 

vim storage.conf 修改tracker_server=實際ip:22122  http.server_port=8888

啟動 tracker 和 storage  實際應用應該是多個tracker 多個storage  這里只做演示用,並沒有配置多個,其實一個會配置了,其余都一樣的,具體集群配置方法自行百度,這里不再贅述。

 docker run -ti -d --name trakcer -v /var/fdfs/tracker_data:/fastdfs/tracker/data -v /var/fdfs/fdfs_conf/tracker.conf:/fdfs_conf/tracker.conf  --net=host season/fastdfs tracker

docker run -ti --name storage -v /var/fdfs/fdfs_conf/storage.conf:/fdfs_conf/storage.conf -v /var/fdfs/storage_data:/fastdfs/storage/data -v /var/fdfs/store_path1:/fastdfs/store_path --net=host  season/fastdfs storage

至此,如果發現它在瘋狂輸出mkdir.. fastdfs就配置好了,就是這么簡單。

接下來就是測試了,測試的話我上了一套簡單的java springboot代碼, 直接放上代碼連接,不再贅述,因為本章主要是講服務器端的配置。

 

從瀏覽器上傳后,我們去linux服務器看一下,

上傳成功了,然后就剩下通過nginx反向代理http請求了。

接着往下看:

進入/var/fdfs/libfastcommon

執行如下命令:

./make.sh
./make.sh install

接着進入/var/fdfs/fastdfs

執行如下命令:

./make.sh
./make.sh install

然后下載並安裝 安裝nginx所需依賴:

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

進入nginx解壓出來的目錄

cd nginx-1.15.9
./configure --add-module=/var/fdfs/fastdfs-nginx-module/src

make; make install

OK,一切順利的話 你在/usr/local/ 目錄下就可以看到nginx了。

然后將 /var/fdfs/fastdfs/conf 目錄下的所有文件copy到 /etc/fdfs中

cp -r /var/fdfs/fastdfs/conf/* /etc/fdfs/

將 /var/fdfs/fastdfs-nginx-module/src 目錄中的 mod_fastdfs.conf 復制到/etc/fdfs

/etc/fdfs目錄中的所有文件是nginx 整合fastdfs-nginx-module所用到的配置文件

vim /etc/fdfs/storage.conf

修改其中內容為:

base_path=/var/fdfs/store_path
store_path0=/var/fdfs/store_path
tracker_server=192.168.6.78:22122
http.server_port=8888 //需要與nginx監聽的端口一致

vim /etc/fdfs/tracker.conf

修改其中內容為:

base_path=/var/fdfs/tracker_data

vim /etc/fdfs/mod_fastdfs.conf 

修改其中內容為:

tracker_server=192.168.6.78:22122
store_path0=/var/fdfs/store_path

url_have_group_name = true //請求路徑是否攜帶組信息

 

接下來就剩下最后一步了,配置nginx

ngxinx 配置文件

vim /usr/local/nginx/conf/nginx.conf
server {
        listen       8888;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location ~/group([0-9])/M00 {
        # root /var/fdfs/storage_path;
            ngx_fastdfs_module;
      }

然后啟動nginx:  

cd /usr/local/nginx/sbin
./nginx

//重新加載 
./nginx -s reload
//停止
./nginx -s stop

啟動完成后進行測試

 

 

 

OK!!!萬事大吉~~~~  需要客戶端測試上傳文件代碼的同學下方留言。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM