• Centos安装FastDFS+Nginx(一天时间搞定)



       最近在研究和使用Fastdfs,别人搭的环境,终究是别人的,绝知此事要躬行~躬行啊~
       
       下面的脚本主要参考了官方的INSTALL文件,这个是比较权威的,部分地方和实际情况不一致。
    比如配置文件的名字,Fastdfs的安装位置。


    一、下载
        https://github.com/happyfish100/fastdfs fastdfs-5.05.zip

    https://github.com/happyfish100/libfastcommon libfastcommon-1.0.7.zip

    https://github.com/happyfish100/fastdfs-nginx-module fastdfs-nginx-module.zip
    二、安装
    先安装libfastcommon-1.0.7.zip

    解压命令 unzip libfastcommon-1.0.7.zip

    cd  libfastcommon-1.0.7
    ./make.sh
    ./make.sh install

    再安装fastdfs
    unzip fastdfs-5.05.zip
    ./make.sh
    ./make.sh install

    如果没有先安装libfastcommon,会报错
    "执行 ./make.sh 报以下错误:


    cc -Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -g -O -DDEBUG_FLAG -DOS_LINUX -DIOEVENT_USE_EPOLL -c -o ../common/fdfs_global.o ../common/fdfs_global.c  -I../common -I/usr/include/fastcommon
    ../common/fdfs_global.c:20:20: fatal error: logger.h: No such file or directory
    #include "logger.h"
                        ^
    compilation terminated."


    三、配置和启动
       配置文件的位置
       /etc/fdfs/tracker.conf
       /etc/fdfs/storage.conf
       
       我的CentOS/etc/fdfs 有3个文件client.conf.sample、storage.conf.sample、tracker.conf.sample
       
       直接重命名这3个文件为,*.conf,修改配置~
       先启动tracker
       /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
       再启动storage
       /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
       
       很奇怪,为啥没有start命令,而是restart?
       
       [root@AY1304131823374920ac ~]# ps -ef|grep tracker
    root     25433     1  0 16:26 ?        00:00:00 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart


       [root@AY1304131823374920ac ~]# ps -ef|grep storage
    root     25533     1  2 16:28 ?        00:00:00 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
       
     四、上传
     #把配置文件上传了
     /usr/bin/fdfs_test /etc/fdfs/client.conf upload /etc/fdfs/client.conf
     
     [root@AY1304131823374920ac logs]# /usr/bin/fdfs_test /etc/fdfs/client.conf upload /etc/fdfs/client.conf
    This is FastDFS client test program v5.05


    Copyright (C) 2008, Happy Fish / YuQing


    FastDFS may be copied only under the terms of the GNU General
    Public License V3, which may be found in the FastDFS source kit.
    Please visit the FastDFS Home Page http://www.csource.org/ 
    for more detail.


    [2015-10-28 17:27:29] DEBUG - base_path=/root/fdfsdata, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0


    tracker_query_storage_store_list_without_group: 
    server 1. group_name=, ip_addr=42.96.184.84, port=23000


    group_name=group1, ip_addr=42.96.184.84, port=23000
    storage_upload_by_filename
    group_name=group1, remote_filename=M00/00/00/KmC4VFYwlQGAItigAAAFsHrMXek69.conf
    source ip address: 42.96.184.84
    file timestamp=2015-10-28 17:27:29
    file size=1456
    file crc32=2060213737
    example file url: http://42.96.184.84:8090/group1/M00/00/00/KmC4VFYwlQGAItigAAAFsHrMXek69.conf
    storage_upload_slave_by_filename
    group_name=group1, remote_filename=M00/00/00/KmC4VFYwlQGAItigAAAFsHrMXek69_big.conf
    source ip address: 42.96.184.84
    file timestamp=2015-10-28 17:27:29
    file size=1456
    file crc32=2060213737
    example file url: http://42.96.184.84:8090/group1/M00/00/00/KmC4VFYwlQGAItigAAAFsHrMXek69_big.conf


    五、监控
    /usr/bin/fdfs_monitor /etc/fdfs/client.conf


    [root@AY1304131823374920ac logs]# /usr/bin/fdfs_monitor /etc/fdfs/client.conf
    [2015-10-28 17:25:13] DEBUG - base_path=/root/fdfsdata, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0


    server_count=1, server_index=0


    tracker server is 42.96.184.84:22122


    group count: 1


    Group 1:
    group name = group1
    disk total space = 20157 MB
    disk free space = 12235 MB
    trunk free space = 0 MB
    storage server count = 1
    active server count = 1
    storage server port = 23000
    storage HTTP port = 8888
    store path count = 1
    subdir count per path = 256
    current write server index = 0


    六、访问文件
       网上找了下,自带的Http可能不能使用,可能啊~
       server {
     46     listen       80;
     47     server_name  file.fansunion.cn;
     48 
     49     location /group1/M00 {
     50         root   /root/fdfsdata/data;
     51          #ngx_fastdfs_module;
     52     }
     53 }
     
     Nginx配置没有使用ngx_fastdfs_module这个模块,出现了403.
        http://file.fansunion.cn/group1/M00/00/00/KmC4VFYwlQGAItigAAAFsHrMXek69_big.conf
       403 Forbidden
       nginx/1.6.2
       
       本地host已经配置了 42.96.184.84 file.fansunion.cn
       
    七、尝试安装ngx_fastdfs_module,因为之前总是403各种问题
      参考ngx_fastdfs_module中的INSTALL文档
      1.源码安装Nginx,之前的Nginx是直接安装的
        Nginx下载地址 http://nginx.org/en/download.html

    写在之前的Nginx,yum remove nginx

    在安装Nginx之前,可能需要安装gcc、 openssl-devel、 pcre-devel和zlib-devel软件库,具体如下:
    #没用
    yum install gcc-c++
    #没用
    yum install openssl-devel
    #用了
    yum install pcre-devel
    #用了
    yum install zlib-devel


    ./configure --add-module=/root/soft/fastdfs-nginx-module-master/src 
    make; 
    make install;

    #检查语法
    /usr/local/nginx/sbin/nginx -t 
    nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
    从这里可以看出,默认使用的是/usr/local/nginx/conf/nginx.conf这个配置文件

    而之前手动命令安装,配置文件在/etc/nginx目录下,这个需要注意哦~

    #启动-指定配置文件
    /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
    #
    /usr/local/nginx/sbin/nginx -s reload

    ps -ef|grep nginx
    root     20897     1  0 10:39 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
    root     20918 13217  0 10:40 pts/3    00:00:00 grep nginx


    再次上传 /usr/bin/fdfs_test /etc/fdfs/client.conf upload /etc/fdfs/client.conf
    访问文件 http://file.fansunion.cn/group1/M00/00/00/KmC4VFYwlQGAItigAAAFsHrMXek69_big.conf
       
        ln -s /root/fdfsdata/data /root/fdfsdata/data/M00

     八、搞了半天还没有搞好,气死我了啊~
       配置防火墙,重新启动,重新上传
    iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 23000 -j ACCEPT
    /etc/init.d/iptables save


    /usr/local/nginx/sbin/nginx 


     /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
     /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
     /usr/bin/fdfs_test /etc/fdfs/client.conf upload /etc/fdfs/client.conf
     http://42.96.184.84:8080/group1/M00/00/00/KmC4VFYxlIWAOq-xAAAFsCOGhRQ76_big.conf
     
     netstat -ano |grep 8080
       
       各种调试Nginx,都报错,连最基本的配置都找不到了~
       看Nginx的日志,也没有发现,最后才晓得,Nginx源码安装的日志文件位于“/usr/local/nginx/logs”。
       
       里面报错了,提示/etc/fdfs/下没有mod_fastdfs.conf这个文件~
       
       拷贝一份http.conf到 /etc/fdfs目录下
       
       


       
    九、麻痹,麻痹啊~终于搞定了~
      1.base_path 放在/root/fdfsdata和/root/fdfsdata2 下,都提示权限不足。
        放在了/home/fdfsdata下就行了。
      2.mime.types等配置文件,凡是提示找不到,就从fastdfs等原文件的conf目录copy一份到/etc/fdfs/
      3.400或404
        可能是Nginx配置或者group-name那个true选项

    没有开启groupname的
    http://42.96.184.84:8080/M00/00/00/KmC4VFYxy2OAAqGdAAAFrZvGHAA99.conf
      
      server {
     36         listen       80;
     37         server_name  42.96.184.84 alias file.test;
     38 
     39         location / {
     40            # root /root/fdfsdata/data;
     41            # ngx_fastdfs_module;
     42            root /home/www;
     43            index a.html;
     44         }
     45   }
     46 
     47   server{
     48       listen 8080;
     49       server_name 42.96.184.84;
     50 
     51       location /M00 {
     52          root /home/fdfsdata/data;
     53          ngx_fastdfs_module;
     54       }
     55 
     56   }
     
     第1个server,是测试Nginx能正常启动。
     第2个server,是监听8080端口,不带group的映射,到fdfs的数据目录。
     
     带group的url访问
     http://42.96.184.84:8080/group1/M00/00/00/KmC4VFYxy2OAAqGdAAAFrZvGHAA99.conf
     
     Nginx配置
      location /group1/M00 {
     49          root /home/fdfsdata/data;
     50          ngx_fastdfs_module;
     51       }
     
     /etc/fdfs/mod_fastdfs.conf 这个配置文件吧。
     url_have_group_name = true(默认为false,改为true)
     
     重启tracker、storage
     重启Nginx
     搞定啦~哦也~
     
     十、小结
     花费一天的时间,终于成功搭建了初步的fdfs环境。
     Nginx+Fastdfs。
     
       参考资料:http://blog.csdn.net/gaofuqi/article/details/27052155
       这个人写得有模有样,感觉比较可行啊~
       我自己的,相对比较曲折,各种问题,但是都逐个解决了~
       
       http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=3598287
  • 相关阅读:
    【动态规划】01背包问题
    【Huffman&&贪心】Fence Repair(POJ 3253)
    【STL学习】priority_queue
    【贪心算法】特殊的密码锁(openjudge8469)
    【贪心+二分】疯牛
    用类模板封装链表
    Qt的QString和C++string之间的转换
    Qt模态对话框和非模态对话框
    常见的交换变量的三种方法
    整理的经典面试题及各种库函数的自己实现
  • 原文地址:https://www.cnblogs.com/qitian1/p/6462638.html
Copyright © 2020-2023  润新知