關于Centos7.x搭建fastdfs圖片服務器教程

環境準備

使用的系統軟件

  • centos | 7.x
  • libfastcommon | FastDFS分離出的一些公用函數包
  • FastDFS | FastDFS本體
  • fastdfs-nginx-module | FastDFS和nginx的關聯模塊
  • nginx | nginx1.15.4

編譯環境

yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y

存儲目錄

  • 所有安裝包位置 | /usr/local/src
  • 數據存儲位置 | /home/dfs

mkdir /home/dfs #創建數據存儲目錄
cd /usr/local/src #切換到安裝目錄準備下載安裝包

安裝libfastcommon

git clone https://github.com/happyfish100/libfastcommon.git --depth 1
cd libfastcommon/
./make.sh && ./make.sh install #編譯安裝

安裝FastDFS

cd ../ #返回上一級目錄
git clone https://github.com/happyfish100/fastdfs.git --depth 1
cd fastdfs/
./make.sh && ./make.sh install #編譯安裝

配置文件準備

cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf #客戶端文件,測試用
cp /usr/local/src/fastdfs/conf/http.conf /etc/fdfs/ #供nginx訪問使用
cp /usr/local/src/fastdfs/conf/mime.types /etc/fdfs/ #供nginx訪問使用

安裝fastdfs-nginx-module

cd ../ #返回上一級目錄
git clone https://github.com/happyfish100/fastdfs-nginx-module.git --depth 1
cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs

安裝nginx

wget http://nginx.org/download/nginx-1.15.4.tar.gz #下載nginx壓縮包
tar -zxvf nginx-1.15.4.tar.gz #解壓
cd nginx-1.15.4/
添加fastdfs-nginx-module模塊
./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/
make && make install #編譯安裝

單機部署

tracker配置

vim /etc/fdfs/tracker.conf
需要修改的內容如下
port=22122 # tracker服務器端口(默認22122,一般不修改)
base_path=/home/dfs # 存儲日志和數據的根目錄

storage配置

vim /etc/fdfs/storage.conf
需要修改的內容如下
port=23000 # storage服務端口(默認23000,一般不修改)
base_path=/home/dfs # 數據和日志文件存儲根目錄
store_path0=/home/dfs # 第一個存儲目錄
tracker_server=192.168.91.128:22122 # tracker服務器IP和端口
http.server_port=8888 # http訪問文件的端口(默認8888,看情況修改,和nginx中保持一致)

client配置

vim /etc/fdfs/client.conf
需要修改的內容如下
base_path=/home/dfs
tracker_server=192.168.91.128:22122 #tracker服務器IP和端口

配置nginx訪問

vim /etc/fdfs/mod_fastdfs.conf
需要修改的內容如下
tracker_server=192.168.52.1:22122 #tracker服務器IP和端口
url_have_group_name=true
store_path0=/home/dfs
配置nginx.config
vim /usr/local/nginx/conf/nginx.conf
添加如下配置
server {
listen 8888; ## 該端口為storage.conf中的http.server_port相同
server_name localhost;
location ~/group[0-9]/ {
ngx_fastdfs_module;
}
}

啟動

關閉防火墻

systemctl stop firewalld.service #關閉
systemctl restart firewalld.service #重啟
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
依次運行然后重新訪問

啟動tracker服務

/etc/init.d/fdfs_trackerd start #啟動tracker服務
/etc/init.d/fdfs_trackerd restart #重啟動tracker服務
/etc/init.d/fdfs_trackerd stop #停止tracker服務
chkconfig fdfs_trackerd on #自啟動tracker服務

啟動storage

/etc/init.d/fdfs_storaged start #啟動storage服務
/etc/init.d/fdfs_storaged restart #重動storage服務
/etc/init.d/fdfs_storaged stop #停止動storage服務
chkconfig fdfs_storaged on #自啟動storage服務

啟動nginx

/usr/local/nginx/sbin/nginx #啟動nginx
/usr/local/nginx/sbin/nginx -s reload #重啟nginx
/usr/local/nginx/sbin/nginx -s stop #停止nginx

圖片上傳

cd /usr/bin
./fdfs_test /etc/fdfs/client.conf upload /usr/local/software/logo.jpg


上傳成功返回

圖片下載

將該圖片地址在瀏覽器訪問即可


下載成功返回

有可能遇到的問題

  • 如果不是root 用戶 你必須在除了cd的命令之外 全部加sudo
  • 如果不是root 用戶 編譯和安裝分開進行 先編譯再安裝
  • 如果上傳成功 但是nginx報錯404 先檢查mod_fastdfs.conf文件中的store_path0是否一致
  • 如果nginx無法訪問 先檢查防火墻 和 mod_fastdfs.conf文件tracker_server是否一致
  • 如果不是在/usr/local/src文件夾下安裝 可能會編譯出錯
  • 如果 unknown directive "ngx_fastdfs_module" in /usr/local/nginx/conf/nginx.conf:151,可能是nginx一直是啟動的,必須要重啟nginx才可以,nginx -s reload無效。
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容