文中所有~~~均為同一個自定義文件夾名字,一般使用項目名稱
2.1.為什么需要用Nginx訪問?
FastDFS通過Tracker服務器,將文件放在Storage服務器存儲,但是同組存儲服務器之間需要進入文件復制,有同步延遲的問題。
假設Tracker服務器將文件上傳到了192.168.4.125,上傳成功后文件ID已經返回給客戶端。此時FastDFS存儲集群機制會將這個文件同步到同組存儲192.168.4.126,在文件還沒有復制完成的情況下,客戶端如果用這個文件ID在192.168.4.126上取文件,就會出現文件無法訪問的錯誤。
而fastdfs-nginx-module可以重定向文件連接到文件上傳時的源服務器取文件,避免客戶端由於復制延遲導致的文件無法訪問錯誤
2.2.安裝fastdfs-nginx-module
2.2.1.解壓
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
2.2.2.修改config
1)進入src目錄
cd fastdfs-nginx-module/src/
2)編輯config
vim config
使用以下底行命令:
:%s+/usr/local/+/usr/+g
將所有的/usr/local替換為 /usr,這個才是正確的目錄:
2.2.3.配置nginx與FastDFS關聯配置文件
復制 fastdfs-nginx-module 源碼中的配置文件到/etc/fdfs 目錄, 並修改
cp /usr/local/leyou/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
vi /etc/fdfs/mod_fastdfs.conf
修改以下配置:
connect_timeout=10 # 客戶端訪問文件連接超時時長(單位:秒)
tracker_server=192.168.56.101:22122 # tracker服務IP和端口,ip為自己的虛擬機tracker服務ip,端口號為默認的fastdfs端口號,未修改擇,不需修改 url_have_group_name=true # 訪問鏈接前綴加上組名 store_path0=/自定義文件路徑(后文使用~~~代表)/storage # 文件存儲路徑
復制 FastDFS 的部分配置文件到/etc/fdfs 目錄
cd /usr/local/~~~/FastDFS/conf/
cp http.conf mime.types /etc/fdfs/
2.3.安裝Nginx的插件
2.3.1.如果沒有安裝過nginx
-
安裝nginx的依賴庫
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
-
解壓安裝包
tar -zxvf nginx-1.10.0.tar.gz
-
配置nginx安裝包,並指定fastdfs-nginx-model
cd nginx-1.10.0
./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx --add-module=/usr/local/~~~/fastdfs-nginx-module/src
注意:在執行./configure配置nginx參數的時候,需要將fastdfs-nginx-moudle源碼作為模塊編譯進去。
-
編譯並安裝
make && make install
2.3.2.如果已經安裝過nginx
1) 進入nginx目錄:
cd /usr/local/~~~/nginx-1.10.0/
2) 配置FastDFS 模塊
./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx --add-module=/usr/local/~~~/fastdfs-nginx-module/src
注意:這次配置時,要添加fastdfs-nginx-moudle模塊
3) 編譯,注意,這次不要安裝(install)
make
4) 替換nginx二進制文件:
備份:
mv /usr/bin/nginx /usr/bin/nginx-bak
用新編譯的nginx啟動文件替代原來的:
cp objs/nginx /usr/bin/
2.3.3.啟動nginx
配置nginx整合fastdfs-module模塊
我們需要修改nginx配置文件,在/opt/nginx/config/nginx.conf文件中:
vim /opt/nginx/conf/nginx.conf
將文件中,原來的server 80{ ...}
部分代碼替換為如下代碼:

啟動nginx:
nginx # 啟動nginx
nginx -s stop # 停止nginx nginx -s reload # 重新載入配置文件
# 可通過ps -ef | grep nginx查看nginx是否已啟動成功
上面為主進程,下面為工作進程。如只有一個進程擇配置有問題,工作進程的個數刻字機配置,但是一般為cpu的核數
2.3.4.設置nginx開機啟動
創建一個開機啟動的腳本:
vim /etc/init.d/nginx
添加以下內容:

修改文件權限,並加入服務列表
# 修改權限
chmod 777 /etc/init.d/nginx
# 添加到服務列表
chkconfig --add /etc/init.d/nginx
設置開機啟動
chkconfig nginx on