FastDFS配置Nginx

本文目录:

  • 1、前言
  • 2、fastdfs-nginx-module安装配置
  • 3、Storage的nginx安装配置
  • 4、Storage的其他配置
  • 5、Tracker的nginx的配置
  • 6、测试
  • 7、总结

 

 

1、前言:

本文是在上文FastDFS【一】:FastDFS在Ubuntu的安装配置 的基础上实现的

系统环境:ubantu16.04

FastDFS版本:5.0.5

Nginx版本:1.10.1

 

本文架构是三台服务器:一台Tracker,两台Storage(为同一Group)

Tracker:192.168.7.73

Storage1:192.168.7.149

Storage2:192.168.7.44

 

2、在所有Storage节点下载安装fastdfs-nginx-module

a、fastdfs-nginx-module介绍

FastDFS 通过 Tracker 服务器,将文件放在 Storage服务器存储,但是同组存储服务器之间需要进入文件复制,有同步延迟的问题。假如Tracker 服务器将文件上传到192.168.7.149,上传成功后文件ID已经返回给客户端。此时 FastDFS 存储集群机制会将这个文件同步到同组存储 192.168.7.44,在文件还没有复制完成的情况下,客户端如果用这个文件 ID192.168.7.44
上取文件,就会出现文件无法访问的错误。而 fastdfs-nginx-module 可以重定向文件连接到源服务器取文件,避免客户端由于复制延迟导致的文件无法访问错误。

b、下载fastdfs-nginx-module,本文下载在/opt/fastdfs文件夹中,命令:

wget http://jaist.dl.sourceforge.NET/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz

c、解压,命令:

tar -zxvf fastdfs-nginx-module_v1.16.tar.gz

d、配置config文件,命令:

cd /opt/fastdfs/fastdfs-nginx-module/src
vim config

修改如下:不修改后面编译nginx会报错

找到下面一行包含有 local 字眼去掉

CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"

改为如下:

CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

 

e、复制 fastdfs-nginx-module 源码中的配置文件到/etc/fdfs 目录, 并修改,命令:

进入fastdfs-nginx-module/src目录下,复制mod_fastdfs.conf文件到 /etc/fdfs目录,进入/etc/fdfs目录,修改mod_fastdfs.conf配置文件

cd fastdfs-nginx-module/src
cp mod_fastdfs.conf /etc/fdfs
cd /etc/fdfs
vim mod_fastdfs.conf

修改如下三处:

tracker_server=192.168.7.73:22122 # tracker服务IP和端口
url_have_group_name=true # 访问链接前缀加上组名
store_path0=/data/fastdfs/storage # 文件存储路径

修改保存。

 

 

 

3、在所有Storage节点下载安装nginx

a、Nginx安装依赖如下(gcc/pcre/zlib/openssl)插件,先要安装如下插件,命令:

apt-get install openssl libssl-dev
apt-get install libpcre3 libpcre3-dev
apt-get install zlib1g-dev
apt-get install build-essential

 

b、下载nginx,命令

wget -c https://nginx.org/download/nginx-1.10.1.tar.gz

 

c、解压,命令:

tar -zxvf nginx-1.10.1.tar.gz

d、编译配置,命令:

  • 注意最后一行,配置fastdfs-nginx模块的路径(这个路径根据自己实际情况而定)
cd nginx-1.10.1

./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/local/nginx/nginx.pid \
--lock-path=/var/lock/nginx/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/opt/fastdfs/fastdfs-nginx-module/src

 

e、编译安装,命令:

make && make install  

 

f、启动,命令:

/usr/local/nginx/sbin/nginx

我这里启动报错,找不到那个目录,于是手动创建,再启动

mkdir -p /var/temp/nginx/client

nginx默认端口80,查看命令:

netstat -anp|grep 80

如上图,至此nginx安装成功

 

 

4、其他配置

复制 FastDFS 的部分配置文件到/etc/fdfs 目录,命令:

cd /opt/fastdfs/fastdfs-5.05/conf
cp http.conf mime.types /etc/fdfs

 

配置nginx.conf文件,命令:

vim /usr/local/nginx/conf/nginx.conf

修改端口与/etc/fdfs/storage.conf 中的http.server_port=8888 相对应

在配置文件中加入如下内容:

location /group1/M00 {
    	root /data/fastdfs/storage/;
    	ngx_fastdfs_module;
}

 

注意事项:
8888 端口值是要与/etc/fdfs/storage.conf 中的http.server_port=8888 相对应,因为 http.server_port 默认为 8888,如果想改成 80,则要对应修改过来。

Storage 对应有多个 group 的情况下,访问路径带 group 名,如/group1/M00/00/00/xxx,对应的 Nginx 配置为:

location ~/group([0-9])/M00 {
    ngx_fastdfs_module;
}

如查下载时如发现老报 404, 将 nginx.conf 第一行 user nobody 修改为 user root 后重新启动。

 

保存,重启nginx服务

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

 

 

5、跟踪Tracker(192.168.7.73)服务器配置Ngnix

a、Nginx安装依赖如下(gcc/pcre/zlib/openssl)插件,先要安装如下插件,命令:

apt-get install openssl libssl-dev
apt-get install libpcre3 libpcre3-dev
apt-get install zlib1g-dev
apt-get install build-essential

 

b、下载nginx,命令

wget -c https://nginx.org/download/nginx-1.10.1.tar.gz

 

c、解压,命令:

tar -zxvf nginx-1.10.1.tar.gz

d、编译配置,命令:

cd nginx-1.10.1

./configure \
--prefix=/usr/local/nginx 

e、编译安装,命令:

make && make install

f、配置Nginx,设置tracker负载均衡

vim /usr/local/nginx/conf/nginx.conf

设置group负载均衡,设置nginx端口为8000

#设置 group1 的服务器
    upstream fdfs_group1 {
         server 192.168.7.149:8888 weight=1 max_fails=2 fail_timeout=30s;
         server 192.168.7.44:8888 weight=1 max_fails=2 fail_timeout=30s;
    }

    server {
        listen       8000;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

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

        #设置 group 的负载均衡参数
        location /group1/M00 {
            proxy_next_upstream http_502 http_504 error timeout invalid_header;
            proxy_pass http://fdfs_group1;
            expires 30d;
        }

g、启动nginx服务,查看启动

/usr/local/nginx/sbin/nginx
netstat -anp|grep 8000

 

 

6、测试

通过浏览器访问,上篇文章测试时上传的文件

测试上传后返回的文件ID为group1/M00/00/00/wKgHlVmxFNOASJjwAATlvJzY_bY439.jpg

用浏览通过Storage直接访问:http://192.168.7.44:8888/group1/M00/00/00/wKgHlVmxFNOASJjwAATlvJzY_bY439.jpg

用浏览器通过Tracker 访问:http://192.168.7.73:8000/group1/M00/00/00/wKgHlVmxFNOASJjwAATlvJzY_bY439.jpg

都可以访问成功

 

 

7、总结:

本篇介绍了FastDFS整合Nginx的使用

更多关于FastDFS的使用,请关注本专栏

后期更新将会第一时间收到通知

哪里写的不好的地方,请留言私信

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值