设为首页 收藏本站
查看: 1823|回复: 0

[经验分享] Fastdfs与Nginx的整合

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-6-21 09:30:17 | 显示全部楼层 |阅读模式
fastdfs在4.06版本以后,就不再支持自带的http服务了,如果需要使用http服务来访问文件,则可以与nginx结合部署,实现http服务。

硬件环境:
      tracker:192.168.189.146
      storage:192.168.189.145 (group1)
      storage:192.168.189.144 (group2)
软件环境:
      Tengine_2.0.3
      fastdfs-nginx-module_v1.15


  假设fastdfs集群已经搭建完成,现开始进行nginx的整合。

一:Fastdfs与nginx的集群整合,本试验使用Tengine代替nginx:
注意:4.0.6版本之后,fastdfs已经删除了http web的服务,因此需要与nginx整合,tracker与storage都需要配置nginx,其中storage需要结合nginx_fastdfs模块,tracker不需要,tracker上的nginx主要起代理调度作用。

1:下载tengine与nginx_fastdfs模块到/usr/local/src目录   
     tengine下载地址:http://tengine.taobao.org/
     fastdfs-nginx-module下载地址:https://fastdfs.googlecode.com/f ... module_v1.15.tar.gz

  2:解压,安装tengine。  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# cd /usr/local/src && tar -zxvf tengine-2.0.3.tar.gz&& tar -zxvf fastdfs-nginx-module_v1.15.tar.gz
编辑fastdfs-nginx-module的编译文件,修改fastdfs路径
# vi fastdfs-nginx-module/src/config
ngx_addon_name=ngx_http_fastdfs_module
HTTP_MODULES="$HTTP_MODULES ngx_http_fastdfs_module"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS$ngx_addon_dir/ngx_http_fastdfs_module.c"
CORE_INCS="$CORE_INCS /usr/local/fastdfs/include/fastdfs/usr/local/fastdfs/include/fastcommon/"
CORE_LIBS="$CORE_LIBS -L/usr/local/fastdfs/lib -lfastcommon -lfdfsclient"
CFLAGS="$CFLAGS-D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024'-DFDFS_MOD_CONF_FILENAME='\"/usr/local/fastdfs/conf/mod_fastdfs.conf\"'"  

复制mod_fastdfs.conf到/usr/local/fastdfs/conf/目录下
# cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /usr/local/fastdfs/conf

编译tengine
# cd tengine-2.0.3
# ./configure --prefix=/usr/local/tengine--add-module=/usr/local/src/fastdfs-nginx-module/src/    (tracker服务器无需添加此模块)
# make && makeinstall




  注:与fastdfs时,nginx开启可能失败,错误信息:error while loading sharedlibraries: libfastcommon.so: cannot open shared object file: No such file ordirectory,将/usr/local/fastdfs/lib 加入系统文件/etc/ld.so.conf中即可:
1
2
3
# vi vim/etc/ld.so.conf
# /usr/local/fastdfs/lib
# /sbin/ldconfig -v






二:mod_fastdfs.conf与tengine的配置:
  1:配置tracker的nginx:192.168.189.146
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#vi/usr/local/tengine/conf/nginx.conf    (部分)
    upstream fastdfs_group1{
     server 192.168.189.145:80;
     }
   upstream fastdfs_group2{
     server 192.168.189.144:80;
   }
   server {
       listen       80;
       server_name  192.168.189.146;
  location /group1 {
       proxy_redirect off;
       proxy_set_header Host $host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_pass http://fastdfs_group1;
       }
   location /group2 {
       proxy_redirect off;
       proxy_set_header Host $host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_pass http://fastdfs_group2;
       }




  2:配置storage group1的mod_fastdfs与nginx:192.168.189.145
1
2
3
4
5
6
7
8
配置mod_fastdfs.conf
# vi/usr/local/fastdfs/conf/mod_fastdfs.conf
base_path=/tmp                 (日志存放路径)
load_fdfs_parameters_from_tracker=true
tracker_server=192.168.189.146:22122  (指定tracker)
group_name=group1                 (指定本机group)
url_have_group_name = true         (允许在url中出现group名)
store_path0=/data/fastdfs/storage       (数据路径)



1
2
3
4
5
6
7
8
9
10
11
配置nginx.conf
#vi/usr/local/tengine/conf/tengine   (部分)
server {
        listen       80;
        server_name  192.168.189.145;


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




  3:配置storage group2的mod_fastdfs与nginx:192.168.189.144
1
2
3
4
5
6
7
8
配置mod_fastdfs.conf
# vi/usr/local/fastdfs/conf/mod_fastdfs.conf
base_path=/tmp                 
load_fdfs_parameters_from_tracker=true
tracker_server=192.168.189.146:22122  
group_name=group2                 
url_have_group_name = true         
store_path0=/data/fastdfs/storage



1
2
3
4
5
6
7
8
9
10
11
配置nginx.conf
#vi/usr/local/tengine/conf/tengine   (部分)
server {
        listen       80;
        server_name  192.168.189.144;


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





三:启动tracker与storage的nginx:
1
2
3
4
5
6
Tracker(146):
# /usr/local/tengine/sbin/nginx -c /usr/local/tengine/conf/nginx.conf
Storagegroup1(145):
# /usr/local/tengine/sbin/nginx -c /usr/local/tengine/conf/nginx.conf
Storage group1(144):
# /usr/local/tengine/sbin/nginx -c /usr/local/tengine/conf/nginx.conf




四:测试文件上传、下载:(在146上)
1:测试上传:
wKioL1dnXYqTROI1AAARjfEYrJs210.jpg   

2:下载文件:
   从上可以看到文件上传至goup1,在本实验中即145服务器,可以直接访问145服务器或者访问146tracker服务器获得文件:
   http://192.168.189.145/group1/M0 ... QAByq1ZoT93o438.JPG
   or
         http://192.168.189.146/group1/M0 ... QAByq1ZoT93o438.JPG
wKioL1dnXeWRHFPQAAfQCACScWA921.jpg
wKiom1dnXemDn8k3AATrUwgCWy0031.jpg


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-233124-1-1.html 上篇帖子: CentOS下fastDFS的完整安装和配置步骤 下篇帖子: FastDFS + Nginx module
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表