一、前期准备工作
1、需要提前下载的安装包:
(1)libfatscommon-1.0.43:FastDFS分离出的一些公用函数包
(2)fastdfs-6.06:FastDFS本体包
(3)nginx:nginx-1.23.1
(4)fastdfs-nginx-module-1.22:FastDFS和nginx的关联模块
百度网盘链接及提取码如下:
链接:https://pan.baidu.com/s/1kFYCE76ckPA6AK3fMZ6cow
提取码:wdzs
2、安装所需要环境:
(1)centos安装:
yum install -y gcc gcc-c++
yum -y install libevent
(2) ubuntu安装:
sudo apt install build-essential
二、安装并配置fsatdfs
1、解压并提前下载好的安装包:
(1)将提前下载好的安装包放在/opt/fastdfs目录中
mkdir -p /opt/fastdfs
(2)编译并安装libfatscommon-1.0.43
解压安装包libfastcommon-1.0.43.tar.gz
tar -zxvf libfastcommon-1.0.43.tar.gz
进入 libfastcommon-1.0.43文件夹
cd libfastcommon-1.0.43
编译并安装
./make.sh
./make.sh install
(3)编译并安装fastdfs-6.06.tar.gz
解压fastdfs-6.06.tar.gz
tar -zxvf fastdfs-6.06.tar.gz
进入fastdfs-6.06目录
cd fastdfs-6.06
安装并编译
./make.sh
./make.sh install
将fastdfs安装文件夹下的配置文件拷贝到/etc/fdfs目录下
cp /opt/fastdfs/fastdfs-6.06/conf/* /etc/fdfs/
注意:我的安装目录在/opt/fastdfs,大家根据自己的安装目录去复制,/etc/fdfs/是自动生成的,无须大家自己创建。
(4)配置tracker服务
进入/etc/fdfs目录
cd /etc/fdfs
修改tracker配置文件中的tracker工作目录
vim tracker.conf
base_path=/usr/local/fastdfs/tracker
保存编辑
按下ESC
:wq
创建tracker工作目录
mkdir /usr/local/fastdfs/tracker -p
启动tracker服务
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
查看是否启动成功
netstat -unltp | grep tracker
(5)配置storage服务
进入/etc/fdfs目录
cd /etc/fdfs
修改storage配置文件
vim storage.conf
修改storage的工作空间
base_path=/usr/local/fastdfs/storage
修改storage的存储空间
store_path0=/usr/local/fastdfs/storage
修改tracker的ip
#你的服务器ip或者本地ip
tracker_server=114.xxx.xxx.184:22122
保存编辑
按下ESC
:wq
创建storage的工作空间和存储空间的目录:
mkdir /usr/local/fastdfs/storage -p
注意:我这里是两个目录一样,大家如果不一样可以分开创建
启动storage 服务
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
查看是否启动成功
netstat -unltp | grep storage
查看tracker和storage是不是在通信
fdfs_monitor /etc/fdfs/storage.conf
出现ACTIVE,表示二者均正常启动,至此就可以进行上传文件测试了
(6)测试上传
进入/etc/fdfs目录
cd /etc/fdfs
修改配置文件client.conf
vim client.conf
base_path=/usr/local/fastdfs/client
tracker_server=114.xxx.xxx.184:22122
注意:tracker的ip 要与上面配置保持一致
创建目录:
mkdir /usr/local/fastdfs/client
echo "Hello Fastdfs">index.html
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /etc/fdfs/index.html
返回结果为:
因为我nginx端口为8888并不是80,所以要在返回结果的IP后加端口号8888
http://114.xxx.xxx.184:8888/group1/M00/00/00/cnOzuGOtUMCADdhzAAAADjoCoNM64_big.html
但是目前还不能访问,因为没有配置nginx
测试上传图片(命令):
fdfs_upload_file /etc/fdfs/client.conf anti-steal.jpg
/usr/bin/fdfs_test /etc/fdfs/client.conf upload anti-steal.jpg
(7)配置nginx
解压fastdfs-nginx-module-1.22.tar.gz
tar -zxvf fastdfs-nginx-module-1.22.tar.gz
进入fastdfs-nginx-module-1.22的src目录下
cd fastdfs-nginx-module-1.22/src/
复制配置文件mod_fastdfs.conf到/etc/fdfs目录下
cp mod_fastdfs.conf /etc/fdfs
修改/fastdfs-nginx-module/src/config文件 把usr/local改为usr
vim config
安装nginx
参考链接:
linux下安装nginx_wd520521的博客-CSDN博客
注意:在解压完nginx后执行./configure需改为如下命令,需要增加一个fastdfs-nginx-module模块
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/opt/fastdfs/fastdfs-nginx-module-1.22/src
注意:上面的加不加无所谓,最重要的是最后一条--add-module=/opt/fastdfs/fastdfs-nginx-module-1.22/src,大家一定要换成自己的安装路径
进入/etc/fdfs/目录
cd /etc/fdfs
修改mod_fastdfs.conf配置文件
vim mod_fastdfs.conf
base_path=/usr/local/fastdfs/tmp
tracker_server=114.xxx.xxx.184:22122
url_have_group_name = true
store_path0=/usr/local/fastdfs/storage
下面是一些配置的介绍,大家可以参考根据自己的需求修改
connect_timeout=10 # 连接超时时间
tracker_server=192.168.255.131:22122 # Tracker Server
storage_server_port=23000 # StorageServer 默认端口
url_have_group_name =true # 如果文件ID的uri中包含/group**,则要设置为true
store_path0=/fastdfsapp/data/storage
# Storage 配置的store_path0路径,必须和storage.conf中的一致
base_path=/fastdfsapp/logs/storage #日志路径
group_count = 1
创建tmp目录
mkdir /usr/local/fastdfs/tmp
修改nginx配置文件:
vim /usr/local/nginx/conf/nginx.conf
注意:listen 8888 端口值是要与 /etc/fdfs/storage.conf 中的 http.server_port=8888 (默认8888)相对应,如果改成其它端口,则需要统一,同时在防火墙中打开该端口
server {
listen 8888;
# 这里不需要改成你的本地ip或者服务器ip
server_name localhost;
location /group1/M00 {
ngx_fastdfs_module;
}
}
下面是另一种方式,大家可以参考一下:
# location 的配置,如果有多个group则配置location ~/group([0-9])/M00 ,没有则不用配group
location ~ /group([0-9])/M00 {
ngx_fastdfs_module;
}
重启nginx
cd /usr/local/nginx/sbin
./nginx -s reload