您的位置:首页 > 运维架构 > Linux

CentOS 7配置FastDFS与Ngnix实践

2017-12-27 18:15 148 查看
根据参考文章: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

配置Tracker服务器的文件目录

mkdir /opt/fastdfs_tracker


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

disabled=false #启用配置文件(默认启用)
port=22122 #设置tracker的端口号,通常采用22122这个默认端口
base_path=/opt/fastdfs_tracker #设置tracker的数据文件和日志目录
http.server_port=6666


为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


启动Tracker服务器

service fdfs_trackerd start


配置FastDFS的Storage

配置Storage服务器的文件目录,以及存放具体接受的文件

mkdir /opt/fastdfs_storage
mkdir /opt/fastdfs_storage_data


配置/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 端口号


为Storage启动脚本创建软引用

ln -s /usr/bin/fdfs_storaged /usr/local/bin


启动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

安装Ngnix

安装Ngnix所依赖的lib库

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


下载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


配置,编译并安装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;
}


拷贝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/


编辑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


最后启动nginx

/usr/local/nginx/sbin/nginx


在宿主机的浏览器测试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


修改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; }


启动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 #返回页面的值表示正常。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: