FastDFS+Nginx安裝配置


下載相關包:

libevent-2.0.22-stable.tar.gz =》 https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz

https://sourceforge.net 下載相應的FASTDFS文件:

fastdfs_client_java._v1.25.tar.gz

fastdfs-nginx-module_v1.16.tar.gz

FastDFS_v5.08.tar.gz

nginx-1.11.6.tar.gz

libfastcommon-master =》https://github.com/happyfish100/libfastcommon/archive/master.zip

拓撲圖

 

1.解壓安裝

a. libevent:

rpm -e --nodepes `rpm -qa | grep libevent
cd libevent1.4.14b
./configure --prefix=/usr 
make clean
make
make install

2.FastDFS_v5.08

cd FastDFS
./make.sh  
./make.sh install  

有報錯信息

compilation terminated.

make: *** [../common/fdfs_global.o] Error 1

需要安裝 libfastcommon-master

3. libfastcommon-master

 unzip master.zip
 cd libfastcommon-master/
 ./make.sh
 ./make.sh install

然后繼續安裝FASTDFS

配置fastdfs:

 

配置tracker:

# cd /etc/fdfs/ # cp tracker.conf.sample tracker.conf 修改配置文件 disabled=false #啟用配置文件 port=22122 #設置tracker的端口號 base_path=/data/fastdfs/trackerd #設置tracker的數據文件和日志目錄(需預先創建) http.server_port=8090 #設置http端口號

啟動:

   # mkdir -p /data/fastdfs/trackerd

   # fdfs_trackerd /etc/fdfs/tracker.conf #啟動

   # /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

設置開機啟動

# echo '/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart' >> /etc/rc.d/rc.local

配置storage:

1.安裝 與tracker 安裝步驟相同

disabled=false            #啟用配置文件

group_name=group1        #組名,根據實際情況修改

port=23000                #設置storage的端口號

base_path=/data/fastdfs/storage  #設置storage的日志目錄(需預先創建)

store_path_count=1        #存儲路徑個數,需要和store_path個數匹配

store_path0=/data/fastdfs/storage  #存儲路徑

tracker_server=172.16.8.8:22122 #tracker服務器的IP地址和端口號

http.server_port=8090    #設置http端口號

 

啟動

# mkdir -p /data/fastdfs/storage

# /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

設置開機啟動

# echo '/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart' >> /etc/rc.d/rc.local

查看狀態

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

# netstat -antp | grep storage


上傳測試(配置Client,client.conf)

cp client.conf.sample client.conf
base_path=/home/yuqing/fastdfs-> base_path=/data/fastdfs_tracker  
tracker_server=192.168.209.121:22122 -> tracker_server=172.16.8.8:22122
http.tracker_server_port=8080 ->http.tracker_server_port=8090

然后測試上傳

fdfs_test /etc/fdfs/client.conf upload a.jpg
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf

4. 安裝Nginx

cd useradd -r nginx
useradd -r nginx
./configure --prefix=/usr/local/nginx --add-module=/data/fastdfs-nginx-module/src
make
make install

NOTE:

安裝Nginx時報錯

./configure: error: the HTTP rewrite module requires the PCRE library.

安裝pcre-devel解決問題
yum -y install pcre-devel

 

錯誤提示:./configure: error: the HTTP cache module requires md5 functions
from OpenSSL library.   You can either disable the module by using
--without-http-cache option, or install the OpenSSL library into the system,
or build the OpenSSL library statically from the source with nginx by using
--with-http_ssl_module --with-openssl=<path> options.

解決辦法:

yum -y install openssl openssl-devel

 

總結:

yum -y install pcre-devel openssl openssl-devel

./configure --prefix=/usr/local/nginx

make

make install

一切搞定




Note:
/usr/local/src/fastdfs-nginx-module/src/common.c:21:25: 錯誤:fdfs_define.h:沒有那個文件或目錄


[root@server1 src]# cp -rf /usr/include/fast* /usr/local/include/ [root@server1 src]# ls /usr/local/include/ fastcommon fastdfs 然后再次編譯Nginx

配置:
vim /usr/local/nginx/conf/nginx.conf
location ~ /group[1-3]/M00 { root /data/fastdfs/storage/data; ngx_fastdfs_module; }
/data/fastdfs/storage/data 這個是指向 真正存儲文件的地方

   建立 M00 至存儲目錄的符號連接

[root@server1 fdfs]# ln -s /data/fastdfs/storage/data /data/fastdfs/storage/data/M00 [root@server1 fdfs]# ll /data/fastdfs/storage/data/M00


配置mod_fastDfs.config:
base_path=/data/fastdfs/storage      #保存日志目錄 tracker_server=10.10.10.124:22122 #tracker 服務器的 IP 地址以及端口號 storage_server_port=23000 #storage 服務器的端口號 group_name=group1 #當前服務器的 group 名 url_have_group_name = true #文件 url 中是否有 group 名 store_path_count=1 #存儲路徑個數,需要和 store_path 個數匹配 store_path0=/data/fastdfs/storage #存儲路徑 http.need_find_content_type=true # 從文件 擴展 名查 找 文件 類型 ( nginx 時 為true) group_count = 1 #設置組的個數
 啟動存儲服務器上的nginx時確報了下面的錯誤:
ngx_http_fastdfs_process_init pid=17609
[2014-12-10 11:52:07] ERROR - file: ini_file_reader.c, line: 315, include file "http.conf" not exists, line: "#include http.conf"

解決方案:
FDFS安裝包的conf目錄下,有幾個配置文件,把http.conf,mime.types,拷貝到/etc/fdfs/下,http.conf里有
個配置應該是token驗證的功能,如果你要打開,應該把路徑配置正確


測試:

[root@mobancentos70 data]# fdfs_upload_file /etc/fdfs/client.conf 1.png
group1/M00/00/00/rBQN5lhI0VeAOOWNAAVg32hqxR4098.png

http://172.20.13.230/group1/M00/00/00/rBQN5lhI0VeAOOWNAAVg32hqxR4098.png

 

 

 

附錄:

在整個環境搭建過程中遇到一些問題,在此提交分享,供大家參考。

1、 在Storage服務器上啟動Nginx時出現 ERROR - file: /home/hadoop/dev/fastdfs/fastdfs-nginx-module/src/common.c, line: 103, section: group1, you must set parameter: group_name!

問題原因:在配置mod_fastdfs.conf文件時要保證group_count=2的個數與下面配置的[group*]個數相一致。

2、 安裝GraphicsMagick進行配置時出現錯誤 configure: error: libltdl is required by modules build 問題原因:沒有安裝libltdl,通過yum install

-ylibtoollibtool-devel安裝后再重新

3、 java客戶端上傳文件時出現錯誤 recvcmd: 100 is not correct, expect cmd: 10

問題原因:版本問題,下載1.24版本的即可。

4、 通過瀏覽器方式縮略圖是出現

gm convert: Request did not return an image.錯誤。

問題原因:沒有安裝libjpeg和libpng包,導致在GM處理圖時出現錯誤。安裝libjpeg和libpng后重新安裝GraphicsMagick即可。

5、 安裝FastDFS在 編譯時出現

/usr/local/lib/libfastcommon.so: undefined reference

to sqrt' /usr/local/lib/libfastcommon.so: undefined reference

tocos'錯誤

問題原因:libfastcommon版本的問題,下載舊版本,重新安裝,然后在編譯FastDFS即可。

 


免責聲明!

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



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