Fastdfs的安装


前言

本来想在docker下安装的,奈何本人能力无法解决其相关网卡问题,还是老老实实地在服务器本身安装吧


一、环境准备

0.开端口

端口描述
80nginx
8000nginx-tracker
8888nginx-storage
22122tracker
23000storage

1.安装gcc

yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib
zlib-devel openssl-devel wget vim -y

2.创建文件夹以存放文件

在/home下建立如下目录
在这里插入图片描述

3.下载相关压缩包

1.libfastcommon

https://github.com/happyfish100/libfastcommon/releases/tag/V1.0.53
在这里插入图片描述

2.FastDFS

https://github.com/happyfish100/fastdfs/releases/tag/V6.07

3.fastdfs-nginx-module

https://github.com/happyfish100/fastdfs-nginx-module/releases/tag/V1.22

4.nginx

http://nginx.org/download/nginx-1.15.4.tar.gz

5.ngx_cache_purge

http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz

把上述的压缩包全部拉进创建的soft文件夹,只看红色就好,蓝色是解压了的,下面会进行
在这里插入图片描述


二、开始安装

1.libfastcommon

tar -zvxf libfastcommon-1.0.53.tar.gz

cd libfastcommon-1.0.53/

#编译安装
./make.sh && ./make.sh install

2.安装FastDFS

cd ..

tar -zvxf fastdfs-6.07.tar.gz

cd fastdfs-6.07/

#编译安装
./make.sh && ./make.sh install

#供nginx访问使用
cp conf/http.conf /etc/fdfs
cp conf/mime.types /etc/fdfs

3.安装fastdfs-nginx-module

cd ..

tar -zvxf fastdfs-nginx-module-1.22.tar.gz

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

4.安装ngx_cache_purge

tar -zvxf ngx_cache_purge-2.3.tar.gz

5.安装nginx

tar -zxvf nginx-1.15.4.tar.gz

cd nginx-1.15.4/

./configure --add-module=/home/pan/tttm/fastdfs/soft/fastdfs-nginx-module-1.22/src/ --add-module=/home/pan/tttm/fastdfs/soft/ngx_cache_purge-2.3

上面的最后一步可能会出错,如
在这里插入图片描述
则添加如下命令

yum -y install pcre-devel


在这里插入图片描述

yum -y install pcre-devel

再重新执行上面的configure命令,如果还有错误,就去网上搜索一下缺少了什么,安装上就好。如果configure成功,就会显示如下
在这里插入图片描述
最后

make && make install #编译安装

如果是新加模块,则在执行上面的./configure后,只执行make,然后停下nginx,再cp objs/nginx /usr/local/nginx/sbin/nginx,重新启动就好(可能还要这样启动

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

三、改配置文件

噩梦开始了

1.tracker.conf

打开在/etc/fdfs,把tracker.conf.sample复制一下,放在同级目录下,改名为tracker.conf,对其进行编辑,更改下面的信息

port = 22122

base_path = /home/pan/tttm/fastdfs/tracker

store_lookup = 2

http.server_port = 8000

改完后复制到各个服务器的相应位置

#启动tracker
/etc/init.d/fdfs_trackerd start

#停止tracker
/etc/init.d/fdfs_trackerd stop

启动成功

2.storage.conf

进入服务器目录/etc/fdfs,然后进行复制storage.conf.sample并更名为storage.conf,进行编辑

group_name = group[]

port = 23000

base_path = /home/pan/tttm/fastdfs/storage

store_path0 = /home/pan/tttm/fastdfs/storage

tracker_server=fdfs01:22122
tracker_server=fdfs02:22122
tracker_server=fdfs03:22122
#启动storage
/etc/init.d/fdfs_storaged start

#关闭storage
/etc/init.d/fdfs_storaged stop

当所有的tracker和storage都打开了后,在任意一台服务器输入

 /usr/bin/fdfs_monitor /etc/fdfs/storage.conf

来查看集群信息
可以看到类似这样的图(图是网上找的,他的集群点比我的多,只要看自己的对不对就好)
在这里插入图片描述

3.client.conf

同理,进入到/etc/fdfs/目录下,我们可以看到client.conf.sample这么一个配置文件,复制一份该文件并命名为client.conf,对其进行编辑。

base_path = /home/pan/tttm/fastdfs/client

tracker_server = fdfs01:22122
tracker_server = fdfs02:22122
tracker_server = fdfs03:22122

4.mod_fastdfs.conf

connect_timeout=10
tracker_server=fdfs01:22122
tracker_server=fdfs02:22122
tracker_server=fdfs03:22122
storage_server_port=23000
url_have_group_name=true
store_path0=/home/pan/tttm/fastdfs
group_name=group[]
group_count=[]

[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/home/pan/tttm/fastdfs/storage

[group2]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/home/pan/tttm/fastdfs/storage

[group3]
group_name=group3
storage_server_port=23000
store_path_count=1
store_path0=/home/pan/tttm/fastdfs/storage

5.nginx.conf(for storage)

进入到/usr/local/nginx/conf/这个目录下,编辑nginx.conf文件

user root;

server {
        listen 8888; ## 该端口为storage.conf中的http.server_port相同
        server_name localhost;
        location ~/group[0-9]/ {
            ngx_fastdfs_module;
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
            root html;
        }
    }

通过下列命令启动

#启动
/usr/local/nginx/sbin/nginx

#停止
/usr/local/nginx/sbin/nginx -s stop

#重新加载
/usr/local/nginx/sbin/nginx -s reload

上传测试:

/usr/bin/fdfs_upload_file  /etc/fdfs/client.conf 放文件的路径

成功后会返回文件的地址,类似这种 group1/M00/00/00/wKicCFjj1xqAcN8EAAHk-VzqZ6w619.jpg
在浏览器输入http://IP地址:8888/group1/M00/00/00/wKicCFjj1xqAcN8EAAHk-VzqZ6w619.jpg,如果返回图片即为成功

6.nginx.conf(for tracker)

events {
    worker_connections  1024;
    use epoll;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout 0;
   
    keepalive_timeout 65;
    #gzip on;
    #设置缓存
    server_names_hash_bucket_size 128;
    client_header_buffer_size 32k;
    large_client_header_buffers 4 32k;
    client_max_body_size 300m;
    proxy_redirect off;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_connect_timeout 90;
    proxy_send_timeout 90;
    proxy_read_timeout 90;
    proxy_buffer_size 16k;
    proxy_buffers 4 64k;
    proxy_busy_buffers_size 128k;
    proxy_temp_file_write_size 128k;
    #设置缓存存储路径、存储方式、分配内存大小、磁盘最大空间、缓存期限
    proxy_cache_path /home/pan/tttm/fastdfs/cache levels=1:2
    keys_zone=http-cache:200m max_size=1g inactive=30d;
    proxy_temp_path /home/pan/tttm/fastdfs/cache/tmp;
    #设置 group1 的服务器
    upstream fdfs_group1 {
        server 139.196.97.69:8888 weight=1 max_fails=2 fail_timeout=30s;
        #server 192.168.50.138:8888 weight=1 max_fails=2 fail_timeout=30s;
    } 
    #设置 group2 的服务器
    upstream fdfs_group2 {
        server 120.24.228.79:8888 weight=1 max_fails=2 fail_timeout=30s;
        #server 192.168.50.140: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;
        #设置 group 的负载均衡参数
        location /group1/M00 {
            proxy_next_upstream http_502 http_504 error timeout invalid_header;
            proxy_cache http-cache;
            proxy_cache_valid 200 304 12h;
            proxy_cache_key $uri$is_args$args;
            proxy_pass http://fdfs_group1;
            expires 30d;
        }
        location /group2/M00 {
            proxy_next_upstream http_502 http_504 error timeout invalid_header;
            proxy_cache http-cache;
            proxy_cache_valid 200 304 12h;
            proxy_cache_key $uri$is_args$args;
            proxy_pass http://fdfs_group2;
            expires 30d;
        } 
        #设置清除缓存的访问权限
        location ~/purge(/.*) {
            allow 127.0.0.1;
            allow 139.196.97.69;
            deny all;
            proxy_cache_purge http-cache $1$is_args$args;
        }
        #error_page 404 /404.html;
        # redirect server error pages to the static page /50x.html
        #
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
            root html;
        }
    }

加入后重新加载nginx

此时在浏览器输入http://IP地址:8000/group1/M00/00/00/wKicCFjj1xqAcN8EAAHk-VzqZ6w619.jpg,如果返回图片即为成功

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值