fastdfs+nginx部署文件服务器

所需工具:
在这里插入图片描述
本文主要参考教程:https://blog.csdn.net/qq_34301871/article/details/80060235,经实践坑已填平。
一、工具安装:
在进行业务工具安装前,需保证环境工具已安装:
yum -y install zlib zlib-devel pcre pcre-devel gcc gcc-c++ openssl openssl-devel libevent libevent-devel perl unzip net-tools wget

1、libfastcommon:
下载:
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.36.tar.gz
解压并进入解压目录下:
tar -zxvf V1.0.36.tar.gz
cd libfastcommon-master
编译、安装:
make.sh && make.sh install
创建软连接:(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
++++++++++++++++++++++++++++++++++++++++++++++
2、fastdfs5.11:
下载:
wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz
解压并进入解压目录下:
tar -zxvf fastdfs5.11.tar.gz
cd fastdfs-5.11/
编译、安装:
./make.sh && ./make.sh install
成功之后进入目录,需要把这三个实例文件服务备份,去掉sample:
cd /etc/fdfs/
cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf
3、安装tracker:
根据个人习惯创建tracker工作目录:
mkdir fastdfs_tracker
配置tracker:
vi /etc/fdfs/tracker.conf
修改以下配置项:
1.disabled=false #默认开启
2.port=22122 #默认端口号
3.base_path=/mnt/fastdfs/fastdfs_tracker #刚刚创建的目录
4.http.server_port=6666 #默认端口是8080
保存修改文件,启动 tracker 命令如下:
service fdfs_trackerd start
成功之后可以看见:
Starting fdfs_trackerd (via systemctl): [ OK ]
返回创建的tracker目录下,发现已生成data、log两个目录;

tracker加入开机启动:
赋权并修改启动文件:
chmod +x /etc/rc.d/rc.local
vi /etc/rc.d/rc.local
在配置文件最后加下以下内容:
service fdfs_trackerd start
保存,然后查看tracker端口监听情况,22122端口启动说明配置成功
netstat -unltp|grep fdfs
4、安装storage
根据个人习惯创建storage工作目录:
mkdir fastdfs_storage
修改storage配置文件
vi /etc/fdfs/storage.conf
修改以下配置项:
1.disabled=false
2.group_name=group1 #组名,根据实际情况修改
3.port=23000 #设置storage的端口号,默认是23000,同一个组的storage端口号必须一致
4.base_path=/mnt/fastdfs/fastdfs_storage #设置storage数据文件和日志目录
5.store_path_count=1 #存储路径个数,需要和store_path个数匹配
6.base_path0=/usr/muyou/dev/fastdfs/fastdfs_storage_data #实际文件存储路径
7.tracker_server=192.100.36.109:22122 #我CentOS7的ip地址
8.http.server_port=8888 #设置 http 端口号
保存之后 创建软引用:
ln -s /usr/bin/fdfs_storaged /usr/local/bin
启动storage:
service fdfs_storaged start
成功应该是如下:
Starting fdfs_storaged (via systemctl): [ OK ]
设置开机启动:
vim /etc/rc.d/rc.local
在配置文件最后加下以下内容:
service fdfs_storaged start
查看服务是否启动:22122、23000端口已启动说明配置成功
netstat -unltp | grep fdfs
服务启动,到此fastdfs已经配置完成了。最后我们再确认一下,storage是否注册到了tracker中去。
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
成功后可以看到:
ip_addr = 192.100.36.109 (localhost.localdomain) ACTIVE 的字样

然后修改客户端配置文件
vi /etc/fdfs/client.conf
修改以下配置项:
base_path=/mnt/fastdfs/fastdfs_tracker #tracker服务器文件路径
tracker_server=192.100.36.109:22122 #tracker服务器IP地址和端口号
http.tracker_server_port=6666 # tracker 服务器的 http端口号,必须和tracker的设置对应起来

上传图片到centos7为测试:
rz 命令选择一张照片 上传到随便一个目录但是 一定要复制出来[一定要保证图片文件不要破损,否则很难验证是否成功]
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf daxiang.jpg
上传成功返回图片的路径:
group1/M00/00/00/wGQkbV8OvaKAZQJHAAAAMy2fiL0261.jpg

到刚才上传的路径查看是否上传成功:
在/mnt/fastdfs/fastdfs_storage_data/data/00/00/ 路径下。

5、FastDFS的nginx模块安装:
在安装nginx之前要安装nginx所需的依赖lib:
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel

安装nginx并添加fastdfs-nginx-module:
wget http://nginx.org/download/nginx-1.12.0.tar.gz
tar -zxvf nginx-1.12.0.tar.gz
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/5e5f3566bbfa57418b5506aaefbe107a42c9fcb1.zip
unzip fastdfs-nginx-module-master.zip
添加nginx模块需要将fastdfs-nginx-module-1.20/src/config 需要修改配置:[参考https://blog.csdn.net/zzzgd_666/article/details/81911892]
将config文件清空并加入以下内容:
echo “”>/mnt/fastdfs/fastdfs-nginx-module/src/config
vim config:加入以下内容

ngx_addon_name=ngx_http_fastdfs_module
if test -n “ n g x m o d u l e l i n k " ; t h e n n g x m o d u l e t y p e = H T T P n g x m o d u l e n a m e = {ngx_module_link}"; then ngx_module_type=HTTP ngx_module_name= ngxmodulelink";thenngxmoduletype=HTTPngxmodulename=ngx_addon_name
ngx_module_incs=”/usr/include/fastdfs /usr/include/fastcommon/"
ngx_module_libs="-lfastcommon -lfdfsclient"
ngx_module_srcs=“ n g x a d d o n d i r / n g x h t t p f a s t d f s m o d u l e . c " n g x m o d u l e d e p s = C F L A G S = " ngx_addon_dir/ngx_http_fastdfs_module.c" ngx_module_deps= CFLAGS=" ngxaddondir/ngxhttpfastdfsmodule.c"ngxmoduledeps=CFLAGS="CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE=‘2561024’ -DFDFS_MOD_CONF_FILENAME=’”/etc/fdfs/mod_fastdfs.conf"’"
. auto/module
else
HTTP_MODULES=“ H T T P M O D U L E S n g x h t t p f a s t d f s m o d u l e " N G X A D D O N S R C S = " HTTP_MODULES ngx_http_fastdfs_module" NGX_ADDON_SRCS=" HTTPMODULESngxhttpfastdfsmodule"NGXADDONSRCS="NGX_ADDON_SRCS n g x a d d o n d i r / n g x h t t p f a s t d f s m o d u l e . c " C O R E I N C S = " ngx_addon_dir/ngx_http_fastdfs_module.c" CORE_INCS=" ngxaddondir/ngxhttpfastdfsmodule.c"COREINCS="CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/”
CORE_LIBS=“ C O R E L I B S − l f a s t c o m m o n − l f d f s c l i e n t " C F L A G S = " CORE_LIBS -lfastcommon -lfdfsclient" CFLAGS=" CORELIBSlfastcommonlfdfsclient"CFLAGS="CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE=‘2561024’ -DFDFS_MOD_CONF_FILENAME=’”/etc/fdfs/mod_fastdfs.conf"’"
fi

然后进入nginx安装目录,添加fastdfs-nginx-module:
./configure --prefix=/usr/local/nginx --add-module=/mnt/fastdfs/fastdfs-nginx-module/src #解压后fastdfs-nginx-module所在的位置
编译、安装:
make && make install
nginx的默认目录是/usr/local/nginx 开始 配置storage nginx:
vim /usr/local/nginx/conf/nginx.conf
修改listen 9999.然后 新增本地location:
server {
listen 9999;
server_name localhost;

    location / {
        root   html;
        index  index.html index.htm;
    }

    location /group1/M00 {
        root /usr/muyou/dev/fastdfs/fastdfs_storage_data/data;
        ngx_fastdfs_module;
    }

然后进入FastDFS安装时的解压过的目录,将http.conf和mime.types拷贝到/etc/fdfs目录下:
cd /mnt/fastdfs/fastdfs-5.11/conf/
cp http.conf /etc/fdfs/
cp mime.types /etc/fdfs/

另外还需要把fastdfs-nginx-module安装目录中src目录下的mod_fastdfs.conf也拷贝到/etc/fdfs目录下:
cp /mnt/fastdfs/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/
对刚刚拷贝的mod_fastdfs.conf文件进行修改:
vi /etc/fdfs/mod_fastdfs.conf
修改以下配置项:
base_path=/mnt/fastdfs/fastdfs_storage #保存日志目录
tracker_server=192.100.36.109:22122 #tracker服务器的IP地址以及端口号
storage_server_port=23000 #storage服务器的端口号
url_have_group_name = true #文件 url 中是否有 group 名
store_path0=/mnt/fastdfs/fastdfs_storage #存储路径
group_count = 3 #设置组的个数,事实上这次只使用了group1
在文件的最后,设置group,添加以下内容:
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/mnt/fastdfs/fasdfs_storage
store_path1=/mnt/fastdfs/fasdfs_storage
[group2]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/mnt/fastdfs/fasdfs_storage
[group3]
group_name=group3
storage_server_port=23000
store_path_count=1
store_path0=/mnt/fastdfs/fasdfs_storage

创建M00至storage存储目录的符号连接:
ln -s /mnt/fastdfs/fasdfs_storage/data /mnt/fastdfs/fastdfs_storage/data/M00
启动nginx:
/usr/local/nginx/sbin/nginx
启动成功显示以下内容:
ngx_http_fastdfs_set pid=2698

至此,storage的nginx已配置成功,继续配置tracker的nginx
编辑nginx配置文件:
vim /usr/local/nginx/conf/nginx.conf
添加以下内容:
upstream fdfs_group1 {
server 127.0.0.1:9999;
}
server {
listen 9989;
server_name localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location /group1/M00 {
        proxy_pass http://fdfs_group1;
    }

重启nginx服务,查看服务是否启动:9999、9989端口已启动说明配置成功。
在浏览器访问链接:本级地址+端口号+上传文件后返回地址,例:192.100.36.109:9999/group1/M00/00/00/wGQkbV8OvaKAZQJHAAAAMy2fiL0261.jpg

如果访问不了,关闭防火墙或者开启端口号:
systemctl enable firewalld.service #开启防火墙

systemctl stop firewalld.service #关闭防火墙(开机会仍会启动)

systemctl disable firewalld.service #禁用防火墙(开机后不再启动)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值