1、下载和解压fastdfs,libfastcommon,nginx,fastdfs-nginx-module
#master机器执行
#安装一些会用到的包
yum -y install zlib zlib-devel pcre pcre-devel gcc gcc-c++ openssl openssl-devel libevent libevent-devel perl unzip net-tools wget
mkdir -p /data/fdfs
cd /data/fdfs
wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz
wget https://github.com/happyfish100/libfastcommon/archive/master.zip
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.20.zip
wget http://nginx.org/download/nginx-1.12.0.tar.gz
tar -zxvf V5.11.tar.gz
unzip master.zip
unzip V1.20.zip
tar -zxvf nginx-1.12.0.tar.gz
2.1 安装libfastcommon
cd /data/fdfs/libfastcommon-master/
./make.sh
./make.sh install
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
2.2 安装FastDfs
cd /data/fdfs/fastdfs-5.11/
./make.sh
./make.sh install
cd /etc/fdfs/
cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf
FastDFS安装结束,开始安装tracker、storage
3.1 安装tracker
mkdir -p /data/fdfs/fastdfs_tracker
cd /etc/fdfs
vi tracker.conf
#修改路径,其他不用修改
base_path=/data/fdfs/fastdfs_tracker
http.server_port=6666
# 启动tracker
service fdfs_trackerd start
chmod +x /etc/rc.d/rc.local
# 添加开机自启动
vi /etc/rc.d/rc.local
#在最后一行加上
service fdfs_trackerd start
# 检查是否监听正常
netstat -unltp|grep fdfs
3.2 安装storage
mkdir -p /data/fdfs/fastdfs_storage
mkdir -p /data/fdfs/data0
mkdir -p /data/fdfs/data1
mkdir -p /data/fdfs/data2
mkdir -p /data/fdfs/data3
mkdir -p /data/fdfs/data4
vi /etc/fdfs/storage.conf
修改路径
base_path=/data/fdfs/fastdfs_storage
store_path_count=5
store_path0=/data/fdfs/data0
store_path1=/data/fdfs/data1
store_path2=/data/fdfs/data2
store_path3=/data/fdfs/data3
store_path4=/data/fdfs/data4
tracker_server=192.168.1.131:22122 填写自己本机ip
#启动storage
service fdfs_storaged start
# 添加开机自启动
vim /etc/rc.d/rc.local
#在最后一行加上
service fdfs_storaged start
修改客户端
vi /etc/fdfs/client.conf
base_path=/data/fdfs/fastdfs_tracker
tracker_server=192.168.1.131:22122 填写自己本机ip
http.tracker_server_port=6666
上传图片或者其他文件 注意使用自己ip
# 默认上传至/data/fdfs/data0
fdfs_upload_file /etc/fdfs/client.conf /root/1350604643139.jpg
#返回是是:group1/M00/00/00/wKgBg13COViAXSD1AA_-EN9C8yw234.jpg
cd /data/fdfs/data0/data/00/00
ls
#上传其他目录下
fdfs_upload_file /etc/fdfs/client.conf /root/1350604643139.jpg 192.168.1.131:23000 4
#返回的是:group1/M04/00/00/wKgBg13CMlCAMrY5AA_-EN9C8yw649.jpg
cd /data/fdfs/data4/data/00/00
ls
现在还不能再网页访问文件图片,需要使用nginx代理
FastDFS的nginx模块安装
安装nginx并添加fastdfs-nginx-module
cd /data/fdfs/fastdfs-nginx-module-1.20/src
sed -i 's/\/usr\/local\/include/\/usr\/include\/fastdfs \/usr\/include\/fastcommon\//g' config
cd /data/fdfs/nginx-1.12.0
./configure --prefix=/usr/local/nginx --add-module=/data/fdfs/fastdfs-nginx-module-1.20/src/
make
make install
#修改nginx配置 具体内容在本文后面单独放
vim /usr/local/nginx/conf/nginx.conf
# 修改完后需要复制一些其他文件
cp /data/fdfs/fastdfs-5.11/conf/http.conf /etc/fdfs/
cp /data/fdfs/fastdfs-5.11/conf/mime.types /etc/fdfs/
cp /data/fdfs/fastdfs-nginx-module-1.20/src/mod_fastdfs.conf /etc/fdfs/
vim /etc/fdfs/mod_fastdfs.conf
#修改的地方有
tracker_server=192.168.1.131:22122
url_have_group_name = true
store_path_count=6
store_path0=/data/fdfs/data0
store_path1=/data/fdfs/data1
store_path2=/data/fdfs/data2
store_path3=/data/fdfs/data3
store_path4=/data/fdfs/data4
store_path5=/data/fdfs/data5
#启动nginx
/usr/local/nginx/sbin/nginx
#关闭nginx
/usr/local/nginx/sbin/nginx -s stop
#查看图片:
http://192.168.1.131/group1/M04/00/00/wKgBg13CMlCAMrY5AA_-EN9C8yw649.jpg
更多关于nginx启动与关闭,可以设置成systemctl start nginx。具体详见centos7下如何自行在systemctl添加系统服务
如果需要一主一备,只需要在另外一台机器安装storage即可
配置的nginx.conf
worker_processes 4;
user root;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
upstream fdfs_group1 {
server 192.168.1.131:9999;
#server 192.168.1.117:9999;
}
server {
listen 80;
server_name localhost;
location ~* /group1/(M00|M01|M02|M03|M04|M05) {
proxy_pass http://fdfs_group1;
}
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 9999;
server_name localhost;
location /group1/M00 {
root /mnt/fdfs/data0/data;
if ($arg_attname ~ "^(.+)") {
add_header Content-Type application/x-download;
add_header Content-Disposition "attachment;filename=$arg_attname";
}
ngx_fastdfs_module;
}
location /group1/M01 {
root /mnt/fdfs/data1/data;
if ($arg_attname ~ "^(.+)") {
add_header Content-Type application/x-download;
add_header Content-Disposition "attachment;filename=$arg_attname";
}
ngx_fastdfs_module;
}
location /group1/M02 {
root /mnt/fdfs/data2/data;
if ($arg_attname ~ "^(.+)") {
add_header Content-Type application/x-download;
add_header Content-Disposition "attachment;filename=$arg_attname";
}
ngx_fastdfs_module;
}
location /group1/M03 {
root /mnt/fdfs/data3/data;
if ($arg_attname ~ "^(.+)") {
add_header Content-Type application/x-download;
add_header Content-Disposition "attachment;filename=$arg_attname";
}
ngx_fastdfs_module;
}
location /group1/M04 {
root /mnt/fdfs/data4/data;
if ($arg_attname ~ "^(.+)") {
add_header Content-Type application/x-download;
add_header Content-Disposition "attachment;filename=$arg_attname";
}
ngx_fastdfs_module;
}
location /group1/M05 {
root /mnt/fdfs/data5/data;
if ($arg_attname ~ "^(.+)") {
add_header Content-Type application/x-download;
add_header Content-Disposition "attachment;filename=$arg_attname";
}
ngx_fastdfs_module;
}
}
}