centos7安装FastDFS整合Nginx

前言

此安装部署方式为公司项目的部署文档,也是由本人编写经多次安装检验,只要环境正常,理论上是决定没问题的。目前在官方镜像CentOS-7-x86_64-Everything-2009.iso制作的系统、华为鲲鹏云centos7上多次实践,均可以正常访问,希望大家安装前确定安装环境。由于鲲鹏云的CPU架构为armv8而centos7之前安装在amd上,所以个人认为应该与CPU没什么关系,可以放心安装。网上的安装方式很多都有问题,所以将相关的安装分享出来


安装

  • 1.准备好要安装的文件

1.百度网盘
链接:https://pan.baidu.com/s/1ujOM1Sont-X_pqNwVt2B4w
提取码:d4u5
2.wget指令(不是很建议,因为不确定他们之间的版本信息,还是建议用lz的百度网盘下载方式)
获取Libfastcommon

 wget https://github.com/happyfish100/libfastcommon/archive/master.zip

获取FastFDS

wget https://github.com/happyfish100/fastdfs/archive/master.zip

获取fastdfs-nginx-module

Wget  https://github.com/happyfish100/fastdfs-nginx-module/archive/master.zip

下载后上传到服务器一个目录下,同时将shell中的位置切到对应目录下
centos7安装FastDFS整合Nginx_第1张图片

  • 2.安装各种依赖软件
yum -y install gcc gcc-c++ libstdc++-devel pcre-devel zlib-devel wget make
yum -y groupinstall 'Development Tools'
  • 3.安装libfastcommon
unzip libfastcommon-master.zip
mv libfastcommon-master /usr/local/libfastcommon
cd /usr/local/libfastcommon
./make.sh
./make.sh install
  • 4.安装fastdfs

解压fastdfs-master文件

unzip fastdfs-master.zip

移动到对应目录下

unzip fastdfs-master.zip

跳转到对应目录

cd /usr/local/fastdfs

编译与安装

./make.sh
./make.sh install

开放22122和23000端口。如果没有防火墙的省略,若是云服务器,记得开启对应的安全组

firewall-cmd --add-port=22122/tcp --permanent
firewall-cmd --add-port=2300/tcp --permanent
#重载入添加的端口
firewall-cmd --reload

验证:/etc/fdfs/ 下面应该有.sample四个文件,图为最终fdfs目录下的文件
centos7安装FastDFS整合Nginx_第2张图片

  • 5.配置tracker 修改base_path(文件存储路径)为/opt/fastdfs
mkdir /opt/fastdfs
cp tracker.conf.sample tracker.conf
vim tracker.conf

将tracker.conf中的base_path参数修改为如下路径

base_path=/opt/fastdfs

启动tracker

fdfs_trackerd /etc/fdfs/tracker.conf start

检查进程是否启动

ps -ef|grep tracker.conf

在这里插入图片描述
查看端口情况

netstat -tunlp|grep fdfs

查看日志

tail /opt/fastdfs/logs/trackerd.log

输出示例:INFO - FastDFS v5.12, base_path=/opt/fastdfs…

  • 6.配置storage
    复制storage文件并编辑
cp storage.conf.sample storage.conf
vim storage.conf

主要修改basepath,storepath以及tracker的连接地址以及storage的http服务端口配置等。

group_name=group1                   # 组名(第一组为group1,第二组为group2,依次类推...)
base_path=/opt/fastdfs             # 数据和日志文件存储根目录
store_path0=/opt/fastdfs           # 第一个存储目录,第二个存储目录起名为:store_path1=xxx,其它存储目录名依次类推...
store_path_count=1                  # 存储路径个数,需要和store_path个数匹配
tracker_server=服务器ip:22122          # tracker服务器IP和端口,有多个则添加多行。云服务器则填公网ip,内网填写局域网ip

启动storage

fdfs_storaged /etc/fdfs/storage.conf start

检测是否正常启动

netstat -unltp|grep fdfs

在这里插入图片描述
查看日志

tail /opt/fastdfs/logs/storaged.log

输出示例:
mkdir data path: FA …
mkdir data path: FB …
mkdir data path: FC …
mkdir data path: FD …
mkdir data path: FE …
mkdir data path: FF …
data path: /opt/fastdfs/data, mkdir sub dir done…

在任一存储节点上使用如下命令查看集群的状态信息,如果出现ipaddr = Active, 则表明storage服务器已经登记到tracker服务器

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

centos7安装FastDFS整合Nginx_第3张图片

  • 在storage上安装nginx和配置fastdfs-nignx模块
unzip fastdfs-nginx-module-master.zip
mv fastdfs-nginx-module-master /usr/local/fastdfs-nginx-module
tar -zxvf nginx-1.16.0.tar.gz
cd nginx-1.16.0/
#配置fastdfs-nignx模块
./configure --prefix=/usr/local/nginx --add-module=/usr/local/fastdfs-nginx-module/src/ 

无报错情况下执行编译安装

make
make install

否则需要安装提示的库(根据提示按需安装)

yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel

如下则表示成功,代表已经成功添加了fastdfs-nginx-module模块

/usr/local/nginx/sbin/nginx -V

在这里插入图片描述

  • 8.配置client
cd /etc/fdfs/
cp client.conf.sample client.conf
vim client.conf

修改以下几项

base_path=/opt/fastdfs              # 数据和日志文件存储根目录
tracker_server=192.168.1.120:22122  # tracker服务器IP和端口,有多个按行添加(经过测试,无法使用localhost)
http.tracker_server_port=8080       # 服务端IP和端口号

上传一张图片进行测试,看是否返回路径,返回则成功(注意端口是否开放)

fdfs_upload_file /etc/fdfs/client.conf /home/test/a.jpg

在这里插入图片描述

  • 9.配置fastdfs-nginx-module和nginx
cd /etc/fdfs/
cp /usr/local/fastdfs-nginx-module/src/mod_fastdfs.conf .
vim mod_fastdfs.conf

修改以下几项

base_path=/opt/fastdfs            # 保存日志目录
tracker_server=192.168.1.120:22122  # tracker服务器IP和端口,有多个按行添加
url_have_group_name = true        # 文件url中是否有group名
store_path0=/opt/fastdfs          # 存储路径

拷贝http.conf,minme.types到/etc/fdfs下

cp /usr/local/fastdfs/conf/http.conf /usr/local/fastdfs/conf/mime.types /etc/fdfs/
  • 10.防盗链配置,修改拷贝后的http.conf
    *****此处为fastdfs的防盗链配置,配置后需要在代码中也进行修改否则无法访问图片,不需要使用的请跳过这一步骤****
    *****此处为fastdfs的防盗链配置,配置后需要在代码中也进行修改否则无法访问图片,不需要使用的请跳过这一步骤****
    *****此处为fastdfs的防盗链配置,配置后需要在代码中也进行修改否则无法访问图片,不需要使用的请跳过这一步骤****

事先准备好相应的防盗链的提示图片hotlinking.png,放置在/etc/fdfs/。必须要配置,如果开起来防盗链却不添加此名称的图片启动会报错

修改配置文件

cd /etc/fdfs/
vim http.conf

修改文件成如下参数

http.anti_steal.check_token=true
http.anti_steal.token_ttl=240
http.anti_steal.secret_key=FastDFS123Luntek20100514
http.anti_steal.token_check_fail=/etc/fdfs/hotlinking.png
  • 11.修改文件成如下参数
    vim /usr/local/nginx/conf/nginx.conf

配置好的样子

server {
     
        listen       80;
        
        location ~/group([0-9])/ {
     
             alias   /opt/fastdfs/data/;
             ngx_fastdfs_module;
        }
        
        location / {
     
            root   html;
            index  index.html index.htm;
        }
    }

在nginx的nginx.conf文件中在listen 80处下添加如下配置

location ~/group([0-9])/ {
     
             alias   /opt/fastdfs/data/;
             ngx_fastdfs_module;
        }

重启nginx

/usr/local/nginx/sbin/nginx

重启nginx

/usr/local/nginx/sbin/nginx -s reload

然后访问上文件中生成的字符串拼接的url
格式如下:http://192.168.1.120/group1/M00/00/00/wKgBeF0tkduAP5J0AAR5MnVKolg001.jpg

若没有进行防盗链配置则应该显示图片,配置后会显示400 BadRequest

  • 12.开机自启
    编辑文件 vim /etc/rc.d/rc.local 增加如下:
# fastdfs start
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
# nginx start
/usr/local/nginx/sbin/nginx

在centos7中, /etc/rc.d/rc.local 文件的权限被降低了,需要给rc.local 文件增加可执行的权限

chmod +x /etc/rc.d/rc.local

至此FastDFS已经安装完成,应该是没有任何问题的


若内网IP变化修改的文件

由于fastdfs与当前电脑的IP地址有关系,所以当重启服务器后可能出现无法访问的情况,这是需要修改服务器的ip,这里建议最好编写脚本开机后自动获取IP,将对应IP修改,这里说一下手动修改的文件

  • 修改storage.conf中的 trackerserver修改 modfastdfs.conf中的tracker_server

  • fastdfs中三个配置文件中需要修改ip地址,/etc/fdfs/下四个配置文件:
    1./etc/fdfs/storage.conf 的tracker_server参数
    2./etc/fdfs/client.conf 的tracker_server参数
    3./etc/fdfs/mod_fastdfs.conf 的tracker_server参数


来生还长,切勿惆怅,创作不易,随手点赞

你可能感兴趣的