安装包下载路径
- libfastcommon下载地址:https://github.com/happyfish100/libfastcommon/releases
- FastDFS下载地址:https://github.com/happyfish100/fastdfs/releases
- fastdfs-nginx-module下载地址:https://github.com/happyfish100/fastdfs-nginx-module/releases
- nginx下载地址:https://nginx.org/en/download.html
- fastdfs官网:https://github.com/happyfish100/fastdfs
fastdfs安装
- sudo yum -y update
- sudo yum install -y gcc gcc-c++
- sudo yum install -y libevent
- tar -zxvf libfastcommon-1.0.48.tar.gz
- sudo ./make.sh, sudo ./make.sh install
- tar -zxvf fastdfs-6.07.tar.gz
- sudo ./make.sh, sudo ./make.sh install
- 将conf目录中的文件复制到/etc/fdfs目录中 sudo cp ./conf/* /etc/fdfs/
配置tracker (192.168.99.101做tracker)
- 创建目录/home/Admin/fastdfs/tracker
- sudo vi /etc/fdfs/tracker.conf
- 修改base_path的值:base_path = /home/Admin/fastdfs/tracker
- 启动tracker: sudo /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
- 查看进程状态:ps -ef |grep tracker
配置storage(192.168.99.102做storage)
- 创建目录/home/Admin/fastdfs/storage
- sudo vi /etc/fdfs/storage.conf
- 修改参数
base_path = /home/Admin/fastdfs/storage store_path0 = /usr/local/fastdfs/storage tracker_server = 192.168.99.101:22122
- 启动storage服务:sudo /usr/bin/fdfs_storaged /etc/fdfs/storage.conf
测试上传
- 修改storage服务器上的/etc/fdfs/client.conf文件
base_path = /home/Admin/fastdfs/client tracker_server = 192.168.99.101:22122
- 将test.png文件上传到/home/Admin/test.png
- 进入/usr/bin/目录执行./fdfs_test /etc/fdfs/client.conf upload /home/Admin/test.png
安装fastdfs-nginx-module
- tar -zxvf fastdfs-nginx-module-1.22.tar.gz
- 进入src目录中,复制文件到fsds中: sudo cp mod_fastdfs.conf /etc/fdfs/
- 修改mod_fastdfs.conf文件:sudo vi /etc/fdfs/mod_fastdfs.conf
# 修改 base_path 目录 base_path=/home/Admin/fastdfs/tmp # 修改 store_path0 的路径和 storage.conf 配置文件中的 store_path0 路径一致 store_path0= /home/Admin/fastdfs/storage # 修改 tracker_server 地址为 tracker 服务器地址 tracker_server=192.168.99.101:22122 # 修改一下 group_name group_name = group1 # url_have_group_name,生成的访问url是否要包含group name,可以改成true url_have_group_name = true
修改fastdfs-nginx-module-1.22/src目录中的config文件
- sodu vi config
ngx_module_incs="/usr/local/include" 修改为 ngx_module_incs="/usr/include" CORE_INCS="$CORE_INCS /usr/local/include" 修改为 CORE_INCS="$CORE_INCS /usr/include"
nginx安装
- sudo yum install -y pcre‐devel
- sudo yum install -y zlib-devel
- 创建目录:sudo mkdir -p /var/temp/nginx
- 进入nginx解压目录执行:sudo ./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=/home/Admin/fastdfs-nginx-module-1.22/src
- 安装nginx:sudo make & sudo make install
nginx 配置
- sudo vi /usr/local/nginx/conf/nginx.conf
user root; # 这一行需要打开,否则启动会报权限错误 error_log logs/error.log; # 打开日志,以及http节点下的log_format和access_log配置 server { ## 该端口为storage.conf中的http.server_port相同 listen 8888; server_name localhost; location ~/group[0-9]/ { ngx_fastdfs_module; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
- 访问服务:http://192.168.99.102:8888/group1/M00/00/00/CmCyVGRI0X-ASpl8AAS1hl-FwsM154_big.png
防火墙开通
- 需要开通storage访问tracker服务22122端口策略
- 需要开通应用机器(测试环境)到tracker服务22122端口策略
- 需要开通应用机器(测试环境)到storage服务23000端口策略
- 历史文件迁移scp 需要开通旧storage到新storage的22端口策略
数据迁移
- tar -cvf data20230428.tar data
- 复制文件:scp data20230428.tar Admin@192.168.99.102:/home/Admin
- tar -xf data20230428.tar
- 删除解压目录中非数据文件的部分比如说进程id
- sudo cp -r * ~/fastdfs/storage/data/
配置fastdfs服务器开机自启动
- tracker开机启动:sudo vi /etc/rc.d/rc.local
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
- storage开机启动: sudo vi /etc/rc.d/rc.local
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
- nginx开机启动: sudo vi /etc/rc.d/rc.local
/usr/local/nginx/sbin/nginx
其他
- 查看进程id:ps -aux|grep nginx
- 查看nginx的安装路径:ls -l /proc/进程号/exe
- 查看tracker服务:netstat -antp|grep fdfs
nginx 启停
- 启动:sudo /usr/local/nginx/sbin/nginx
- 停止:sudo /usr/local/nginx/sbin/nginx -s stop
- 重启:sudo /usr/local/nginx/sbin/nginx -s reload
- 日志所在目录: /usr/local/nginx/logs