CentOS 7配置FastDFS与Ngnix实践

根据参考文章:http://www.linuxidc.com/Linux/2016-09/135537.htm实践
精简的实践过程如下。

创建/opt安装目录

mkdir /opt

安装libfastcommon包

在opt目录下执行

wget https://github.com/happyfish100/libfastcommon/archive/V1.0.36.tar.gz
tar -zxvf V1.0.36.tar.gz
cd libfastcommon-1.0.36
./make.sh
./make.sh install

至此FastDFS所需要的libfastcommon包安装完成。

因为libfastcommon.so 默认安装到了/usr/lib64/libfastcommon.so,但是FastDFS主程序设置的lib目录是/usr/local/lib,所以此处需要重新设置软链接。

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

安装FastDFS

在opt目录下执行

wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz
tar -zxvf V5.11.tar.gz
cd fastdfs-5.11
./make.sh
./make.sh install

至此FastDFS安装完成,安装目录为/etc/fdfs
进入/etc/fdfs,将conf的sample文件拷贝用于后续的FastDFS服务器配置。

cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf

配置FastDFS的Tracker

  1. 配置Tracker服务器的文件目录
mkdir /opt/fastdfs_tracker
  1. 配置/etc/fdfs目录下的tracker.conf配置文件
disabled=false #启用配置文件(默认启用)
port=22122 #设置tracker的端口号,通常采用22122这个默认端口
base_path=/opt/fastdfs_tracker #设置tracker的数据文件和日志目录
http.server_port=6666 
  1. 为Tracker启动脚本创建软引用
ln -s /usr/bin/fdfs_trackerd /usr/local/bin
ln -s /usr/bin/stop.sh /usr/local/bin
ln -s /usr/bin/restart.sh /usr/local/bin
  1. 启动Tracker服务器
service fdfs_trackerd start

配置FastDFS的Storage

  1. 配置Storage服务器的文件目录,以及存放具体接受的文件
mkdir /opt/fastdfs_storage
mkdir /opt/fastdfs_storage_data
  1. 配置/etc/fdfs目录下的storage.conf配置文件
disabled=false #启用配置文件(默认启用)
group_name=group1 #组名,根据实际情况修改
port=23000 #设置storage的端口号,默认是23000,同一个组的storage端口号必须一致
base_path=/opt/fastdfs_storage #设置storage数据文件和日志目录
store_path_count=1 #存储路径个数,需要和store_path个数匹配
store_path0=/opt/fastdfs_storage_data #实际文件存储路径
tracker_server=192.168.200.214:22122 #tracker 服务器的 IP地址和端口号,如果是单机搭建,IP不要写127.0.0.1,否则启动不成功(此处的ip是我的CentOS虚拟机ip)
http.server_port=8888 #设置 http 端口号
  1. 为Storage启动脚本创建软引用
ln -s /usr/bin/fdfs_storaged /usr/local/bin
  1. 启动Storage服务器
service fdfs_storaged start

可以看见在/opt/fastdfs_storage_data下面生成了实际文件存储路径

确认FastDFS的Tracker与Storage启动完成

netstat -unltp|grep fdfs

可以确定22122,23000端口均被监听。

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

可以确认storage服务器是否已经登记到 tracker服务器(也可以理解为tracker与storage是否整合成功)。

通过FastDFS的客户端测试文件上传

配置/etc/fdfs目录下的client.conf文件。

base_path=/opt/fastdfs_tracker #tracker服务器文件路径
tracker_server=192.168.111.11:22122 #tracker服务器IP地址和端口号
http.tracker_server_port=6666 # tracker 服务器的 http 端口号,必须和tracker的设置对应起来

在/opt目录下放置test.jpg文件。

/usr/bin/fdfs_upload_file  /etc/fdfs/client.conf  /opt/test.jpg

执行命令后获得FastDFS存放该文件的位置。

group1/M00/00/00/wKjI1lpDCOGAJIZTAACbNzE7S1A224.jpg

group1:组名
M00:磁盘
/00/00:目录
wKjI1lpDCOGAJIZTAACbNzE7S1A224.jpg:文件名

引入Ngnix为FastDFS提供HTTP服务

自FastDFS4.0.5版本起,HTTP服务被移除。需要引入Ngnix为FastDFS提供HTTP服务,并解决group中storage服务器的同步延迟问题,以及负载问题等。

此处先为Storage引入Ngnix

  1. 安装Ngnix
    安装Ngnix所依赖的lib库
yum -y install pcre pcre-devel  
yum -y install zlib zlib-devel  
yum -y install openssl openssl-devel
  1. 下载Ngnix,以及fastdfs-ngnix适配模块并解压
wget http://nginx.org/download/nginx-1.8.1.tar.gz
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/master.zip
tar -zxvf nginx-1.8.1.tar.gz
unzip master.zip
  1. 配置,编译并安装Nginx
./configure --prefix=/usr/local/nginx --add-module=/opt/fastdfs-nginx-module-master/src
make
make install

Nginx的安装目录为/usr/local/nginx。
4. 修改ngnix.conf配置文件
修改/usr/local/nginx/conf/ngnix.conf文件

listen       9999;

location ~/group1/M00 {
      root /opt/fastdfs_storage_data/data;
      ngx_fastdfs_module;
}
  1. 拷贝FastDFS解压缩目录下的conf目录下的http.conf和mime.types到/etc/fdfs目录下
cp -r /opt/fastdfs-5.05/conf/http.conf /etc/fdfs/
cp -r /opt/fastdfs-5.05/conf/mime.types /etc/fdfs/

接下来还需要把fastdfs-nginx-module安装目录中src目录下的mod_fastdfs.conf也拷贝到/etc/fdfs目录下

cp -r /opt/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/
  1. 编辑mod_fastdfs.conf
base_path=/opt/fastdfs_storage #保存日志目录
tracker_server=192.168.111.11:22122 #tracker服务器的IP地址以及端口号
storage_server_port=23000 #storage服务器的端口号
url_have_group_name = true #文件 url 中是否有 group 名
store_path0=/opt/fastdfs_storage_data # 存储路径
group_count = 3 #设置组的个数,事实上这次只使用了group1

设置了group_count = 3,接下来就需要在文件尾部追加这3个group setting:

[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs_storage_data

[group2]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs_storage_data

[group3]
group_name=group3
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs_storage_data

接下来还需要建立 M00 至存储目录的符号连接:

ln  -s  /opt/fastdfs_storage_data/data  /opt/fastdfs_storage_data/data/M00
  1. 最后启动nginx
/usr/local/nginx/sbin/nginx
  1. 在宿主机的浏览器测试nginx
http://192.168.200.214:9999

如果从宿主机无法连接,可能是由于CentOS的防火墙阻止

首先:开启 web 端口
firewall-cmd --permanent --add-port=80/tcp
重启 firewall
firewall-cmd --reload

至此为FastDFS的Storage配置的HTTP服务支持者Ngnix结束。


为Tracker引入Nginx
1. 在/usr/local下创建ngnix2文件夹用以放置第二个Ngnix服务器的文件

cd /usr/local
mkdir nginx2
cd /opt/nginx-1.8.1/
./configure --prefix=/usr/local/nginx2 --add-module=/opt/fastdfs-nginx-module-master/src
make
make install
  1. 修改nginx2下面的/conf/nginx.conf文件,tracker的nginx无需修改listen端口,即默认的80端口,并将upstream指向storage的nginx地址:
http节点下
upstream fdfs_group1 {
     server 127.0.0.1:9999;
}
server节点下
location /group1/M00 {
     proxy_pass http://fdfs_group1;
}
  1. 启动nginx2
/usr/local/nginx2/sbin/nginx

至此可以通过宿主机浏览器来访问上传的图片

http://192.168.200.214/group1/M00/00/00/wKjI1lpDCOGAJIZTAACbNzE7S1A224.jpg

附录

检查Ngnix启动是否成功

  • 检查服务端是否启动成功
ps -ef |grep nginx  #查看nginx服务是否启动
  • 检查web访问是否成功
wget 127.0.0.1
curl 127.0.0.1 #返回页面的值表示正常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值