1.简介

    FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

2.下载FastDFS安装包

    本手册使用CentOS 7.0 64位操作系统,安装文件服务器时所需下载软件包有:

  1. libfastcommon源代码:wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz
  2. fastdfs-nginx-module源代码:wget http://jaist.dl.sourceforge.net/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz
  3. FastDFS源代码:wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz
  4. nginx服务器源代码:wget http://nginx.org/download/nginx-1.8.0.tar.gz
  5. nginx依赖的pcre库源代码:wget http://netassist.dl.sourceforge.net/project/pcre/pcre/8.36/pcre-8.36.zip
  6. nginx依赖的zlib库源代码:wget http://zlib.net/zlib-1.2.11.tar.gz

3.安装libfastcommon

    安装libfastcommon需进行如下操作:

  1. 进入复制后的目录: cd /usr/local
  2. 复制已经下载的软件:cp /down/libfastcommon-1.0.7.tar.gz ./
  3. 软件解压:tar -zxvf libfastcommon-1.0.7.tar.gz
  4. cd libfastcommon-1.0.7/
  5. 软件编译:  ./make.sh
  6.  软件安装: ./make.sh install

    注意安装的路径:libfastcommon默认安装到了/usr/lib64/这个位置。

centos 7下FastDFS、Nginx、ssl证书的安装

4.安装FastDFS

    安装fastdfs需进行如下操作:

cd /usr/local/

0.cp /down/fastdfs-5.05.tar.gz ./

  1. 解压文件:tar -zxvf fastdfs-5.05.tar.gz
  1. 进入软件目录:cd fastdfs-5.05/
  2. 编辑配置文件:vim make.sh   TARGET_PREFIX=$DESTDIR/usr改成TARGET_PREFIX=$DESTDIR/usr/local
  3. 软件编译:  ./make.sh
  4. 软件安装: ./make.sh install

    编辑make.sh时,可用vi或者vim命令打开make.sh文件,进入文件后,输入字母i表示把文件设置为可编辑模式,修改内容时,移动光标到指定内容处做修改。修改完成后,按ESC退出编辑模式,输入:wq命令,保存并退出此次编辑。

   软件安装成功后,服务脚本在/etc/init.d/fdfs_storaged/etc/init.d/fdfs_trackerd。配置文件在 /etc/fdfs/client.conf.sample/etc/fdfs/storage.conf.sample/etc/fdfs/tracker.conf.sample文件中。FastDFS服务脚本设置的bin目录为/usr/local/bin/,可在这个目录下通过命令(cd /usr/local/bin && ls | grep fdfs)查看它自带的脚本。

centos 7下FastDFS、Nginx、ssl证书的安装

5.进行软链接

FastDFS主程序设置的目录为/usr/local/lib/,而我们的安装目录为/usr/lib64,所以我们需要创建/usr/lib64/下的一些核心执行程序的软连接文件。

  1. 命令:ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
  2. 命令:ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
  3. 命令:ln -s /usr/local/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
  4. 命令:ln -s /usr/local/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

6.配置跟踪器tracker

    配置tracker需进行如下操作:

  1. 进入配置目录:cd /etc/fdfs
  2. 复制配置文件:cp tracker.conf.sample tracker.conf
  3. 修改配置文件:vim /etc/fdfs/tracker.conf 修改内容为文本中的base_pathbase_path=/fastdfs/tracker
  4. 新建文件:mkdir -p /fastdfs/tracker (这个新建目录就是与base_path对应的文件目录)
  5. 开放端口:22122端口。
  6. 设置tracker开机启动:cd /etc/init.d/
  7. chkconfig --add fdfs_trackerd
  8. chkconfig fdfs_trackerd on (设置为开机启动) 或者/etc/init.d/fdfs_trackerd start

    迁移配置说明:为了后期方便做文件服务器迁移,当ip地址变化时,尽可能的减少文件中ip地址替换,应采用自定义Server ID的模式。具体操作为修改tracker.conf文件中的内容:

centos 7下FastDFS、Nginx、ssl证书的安装

其中storage_ids.conf在下载的文件配置包中有

cd /etc/fdfs

cp /usr/local/fastdfs-5.05/conf/storage_ids.conf ./

strage_ids.conf内容如:vim storage_ids.conf

centos 7下FastDFS、Nginx、ssl证书的安装

    在其他的配置文件中,如client.conf,storage.conf,mod_fastdfs.conf这些里面的ip地址填写与strage_ids.conf中的ip地址一致既可。group设置也应和strage_ids.conf中的group_name一致。特别说明,client.conf,mod_fastdfs.conf中也有设置Server ID的模式,但是测试client.conf无效。

    对于tracker.conf配置文件参数解释可以找官方文档,地址为:http://bbs.chinaunix.net/thread-1941456-1-1.html

Centos 7.0中操作firewall端口的命令为:

  • 查看端口:firewall-cmd --list-ports
  • 开放端口:firewall-cmd --zone=public --add-port=22122/tcp --permanent   (permanent表示永久生效)
  • 重启firewallfirewall-cmd --reload

centos 7下FastDFS、Nginx、ssl证书的安装

    tracker.conf文件配置完成后,可通过tracker的命令启动并查看是否配置成功。配置成功后在 /fastdfs/tracker/目录下面会有logs目录和data目录。

  1. 启动tracker命令:/etc/init.d/fdfs_trackerd start
  2. 查看进程命令:ps -el | grep fdfs
  3. 停止tracker命令:/etc/init.d/fdfs_trackerd stop
  4. 目录命令:cd /fastdfs/tracker/ && ll

centos 7下FastDFS、Nginx、ssl证书的安装

7.配置存储器storage

    配置storage需进行如下操作:

  1. 进入配置目录:cd /etc/fdfs
  2. 复制配置文件:cp storage.conf.sample storage.conf
  3. 修改配置文件:vim /etc/fdfs/storage.conf 修改内容为以下定义项:
  • base_path=/fastdfs/storage
  • store_path0=/fastdfs/storage
  • tracker_server=172.31.155.105:22122(为服务器的外面ip地址,与自定义的storage_ids.conf里面的ip保持一致) 
  • http.server_port=80
  1. 新建文件:mkdir -p /fastdfs/storage (这个新建目录就是与base_path对应的文件目录)
  2. 开放端口:22122端口。
  3. 设置storage开机启动:cd /etc/init.d/
  4. chkconfig --add fdfs_storaged
  5. chkconfig fdfs_storaged on(设置为开机启动)

    对于storage.conf配置文件参数解释可以找官方文档,地址为:http://fredlong.iteye.com/blog/2287899 storage.conf文件配置完成后,可通过storage的命令启动并查看是否配置成功。配置成功后在 /fastdfs/storage/目录下面会有logs目录和data目录。

  1. 启动storage命令:/etc/init.d/fdfs_storaged start
  2. 查看进程命令:ps -el|grep fdfs
  3. 停止storage命令:/etc/init.d/fdfs_storaged stop
  4. 目录命令:cd /fastdfs/storage/ && ll

centos 7下FastDFS、Nginx、ssl证书的安装

8.文件服务器测试

    测试文件服务器是否可用需进行如下操作:

  1. 进入配置文件:cd /etc/fdfs/
  2. 复制客户端配置文件:cp client.conf.sample client.conf
  3. 编辑配置文件:命令:vim /etc/fdfs/client.conf ,修改内容:base_path=/fastdfs/trackertracker_server=172.31.155.105:22122
  4. 调用上传命令上传文件:
  5. /usr/local/bin/fdfs_upload_file /etc/fdfs/client.conf /root/fastdfsdownfile/V1.0.7.tar.gz   

/usr/local/bin/fdfs_test /etc/fdfs/client.conf upload a.html

  1. (执行上传文件命令成功时,会返回上传文件所在的位置。)

centos 7下FastDFS、Nginx、ssl证书的安装

9.nginx插件安装

  1. 安装gcc环境包:yum groupinstall "Development Tools"
  2. yum install pcre
  3. yum install zlib

    安装nginx插件:

cd /usr/local/

cp /down/fastdfs-nginx-module_v1.16.tar.gz ./

  1. 解压文件:tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
  2. 修改配置文件:cd fastdfs-nginx-module/src
  3. vim config 
  4. 修改内容为CORE_INCS="$CORE_INCS  /usr/local/include/fastdfs /usr/local/include/fastcommon/"  改成CORE_INCS="$CORE_INCS  /usr/local/include/fastdfs /usr/include/fastcommon/"
  5. 复制配置文件mod_fastdfs.confcp  mod_fastdfs.conf /etc/fdfs
  6. 修改配置文件mod_fastdfs.conf:修改配置如下:

     vim /etc/fdfs/mod_fastdfs.conf 

      group_name=group1

      tracker_server=172.31.155.105:22122

      store_path0=/fastdfs/storage

      base_path=/fastdfs/storage

      url_have_group_name = false

在文件末尾添加以下信息

      [group1] 

      group_name=group1 

      storage_server_port=23000 

      store_path_count=1 

  1. 文件复制:复制FastDFS里的2个文件,到/etc/fdfs目录中。cp /usr/local/fastdfs-5.05/conf/http.conf /etc/fdfs/cp /usr/local/fastdfs-5.05/conf/mime.types /etc/fdfs/
  2. 创建一个软连接:在/fastdfs/storage文件存储目录下创建软连接,将其链接到实际存放数据的目录。命令:ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00

10.nginx安装及绑定

    在每个Storage服务器上安装Nginx

yum -y install gcc gcc-c++ ncurses-devel perl  

yum -y install pcre-devel openssl openssl-devel

  1. 解压文件:tar -zxvf nginx-1.13.8.tar.gz
  2. 进入目录: cd nginx-1.13.8/
  3. 设置配置:./configure --add-module=/usr/local/fastdfs-nginx-module/src/ --with-http_ssl_module http_ssl_module是指添加ssl模块)
  4. add-module=/${fastdfs-nginx-module安装目录}/fastdfs-nginx-module/src 
  5. 编译:make
  6. 安装:make install
  7. 设置nginx配置文件:cd /usr/local/nginx/conf
  8. vim nginx.conf
  9. 开放端口:80
  10. nginx.conf文件修改内容为:

listen 80;

location ~/M00 {

root /fastdfs/storage/data;

ngx_fastdfs_module;

}

注意:nginx里的端口要和配置FastDFS存储中的storage.conf文件配置一致,

也就是(http.server_port=80)

centos 7下FastDFS、Nginx、ssl证书的安装

     最后检查防火墙,然后启动nginx服务。启动成功后网页访问如下:

  • 启动命令:/usr/local/nginx/sbin/nginx
  • 重新启动命令:cd /usr/local/nginx/sbin ./nginx -s reload

centos 7下FastDFS、Nginx、ssl证书的安装

    上传测试文件并通过网页访问效果如下:

centos 7下FastDFS、Nginx、ssl证书的安装

 

centos 7下FastDFS、Nginx、ssl证书的安装

ssl证书放在/usr/local/nginx/conf/cert目录

centos 7下FastDFS、Nginx、ssl证书的安装

nginx需先安装ssl模块

./configure --add-module=/usr/local/fastdfs-nginx-module/src/ --with-http_ssl_module

server{

listen 443;

server_name *****;

ssl on; #设置为on启用SSL功能。

ssl_certificate cert/******.pem; #证书的文件名。

ssl_certificate_key cert/*******.key; #证书的**文件名。

ssl_session_timeout 5m;

ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。

ssl_prefer_server_ciphers on;

location / {

root html/****/;

index index.html index.htm;

}

location ^~ /api/{

proxy_pass http://192.168.1.22/;

}

}

server{

listen 80;

server_name ******;

rewrite ^(.*)$ https://$host$1 permanent;

}

 

 

设置nginx开机自启动(centos7.x

 第一步:进入到/lib/systemd/system/目录

# cd /lib/systemd/system/

 

第二步:创建nginx.service文件,并编辑

# vi nginx.service

内如如下:

[Unit] Description=nginx  After=network.target      [Service]  Type=forking  ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s quit PrivateTmp=true      [Install]  WantedBy=multi-user.target

[Unit]:服务的说明

Description:描述服务

After:描述服务类别

[Service]服务运行参数的设置

Type=forking是后台运行的形式

ExecStart为服务的具体运行命令

ExecReload为重启命令

ExecStop为停止命令

PrivateTmp=True表示给服务分配独立的临时空间

注意:[Service]的启动、重启、停止命令全部要求使用绝对路径

[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

保存退出。

 

添加权限

# chmod 754 /lib/systemd/system/nginx.service

centos 7下FastDFS、Nginx、ssl证书的安装

 

centos 7下FastDFS、Nginx、ssl证书的安装

 

使文件生效

systemctl daemon-reload

 

第三步:加入开机自启动

# systemctl enable nginx.service

 

如果不想开机自启动了,可以使用下面的命令取消开机自启动

# systemctl disable nginx.service

 

第四步:服务的启动/停止/刷新配置文件/查看状态

# systemctl start nginx.service          启动nginx服务

# systemctl stop nginx.service           停止服务

# systemctl restart nginx.service        重新启动服务

# systemctl list-units --type=service     查看所有已启动的服务

# systemctl status nginx.service          查看服务当前状态

# systemctl enable nginx.service          设置开机自启动

# systemctl disable nginx.service         停止开机自启动

常见的错误:

Warning: nginx.service changed on disk. Run 'systemctl daemon-reload' to reload units.

 直接按照提示执行命令systemctl daemon-reload 即可。

# systemctl daemon-reload

 

centos 7下FastDFS、Nginx、ssl证书的安装

 

重启,看是否自启动

现在nginx,tomcat都是自启动

centos 7下FastDFS、Nginx、ssl证书的安装

 

 

相关文章: