天天看点

FastDFS和openresty nginx lua安装介绍软件下载安装依赖安装libfastcommon安装fastdfs添加用户创建文件夹在tracker服务器上在storage服务器上创建并上传测试文件访问上传的页面在storage服务器上使用monitor检测是否有错误删除fdfs 参考

介绍

架构图

FastDFS和openresty nginx lua安装介绍软件下载安装依赖安装libfastcommon安装fastdfs添加用户创建文件夹在tracker服务器上在storage服务器上创建并上传测试文件访问上传的页面在storage服务器上使用monitor检测是否有错误删除fdfs 参考

由该图可知,上传、修改、删除是通过tracker的api进行的,访问、下载操作是通过nginx进行的

服务器信息

服务器,使用的系统为centos7.1,libfastcommon1.07,fastdfs版本为5.05稳定版

服务器ip分别是18、50、51

18作为tracker机器,50作为group1的storage,51作为group2的storage

软件下载

fastdfs-5.05

libfastcommon-master

wget https://github.com/happyfish100/libfastcommon/archive/master.zip
           

nginx + lua + fastdfs module

wget https://github.com/happyfish100/fastdfs-nginx-module/archive/master.zip
unzip fastdfs-nginx-module-master.zip
           
wget http://openresty.org/download/ngx_openresty-1.7.10.1.tar.gz
tar -zxvf ngx_openresty-1.7.10.1.tar.gz
           

安装依赖

sudo yum -y groupinstall 'Development Tools'

安装libfastcommon

cd libfastcommon-master

./make.sh

sudo ./make.sh install

安装fastdfs

cd fastdfs-5.05/

./make.sh

sudo ./make.sh install

添加用户

sudo useradd fastdfs -M -s /sbin/nologin

创建文件夹

sudo mkdir -p /data/fdfs/

sudo chown -R fastdfs:fastdfs /data/fdfs

在tracker服务器上

修改tracker配置文件

sudo cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf

sudo vim /etc/fdfs/tracker.conf

修改base_path

# the base path to store data and log files

base_path=/data/fdfs

run_by_group=fastdfs

run_by_user=fastdfs

启动tracker

sudo /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start

在storage服务器上

修改storage配置文件

cd /etc/fdfs

sudo cp storage.conf.sample storage.conf

修改group1的storage配置文件

group_name=group1

run_by_group=fastdfs

run_by_user=fastdfs

# the base path to store data and log files

base_path=/data/fdfs

# tracker_server can ocur more than once, and tracker_server format is

# "host:port", host can be hostname or ip address

tracker_server=192.168.1.50:22122

# store_path#, based 0, if store_path0 not exists, it's value is base_path

# the paths must be exist

store_path0=/data/fdfs

#store_path1=/home/yuqing/fastdfs2

修改group2的storage的配置文件

run_by_group=fastdfs

run_by_user=fastdfs

group_name=group2

base_path=/data/fdfs

# tracker_server can ocur more than once, and tracker_server format is

# "host:port", host can be hostname or ip address

tracker_server=192.168.1.51:22122

# store_path#, based 0, if store_path0 not exists, it's value is base_path

# the paths must be exist

store_path0=/data/fdfs

启动storage

sudo /usr/bin/fdfs_storaged /etc/fdfs/storage.conf start

安装openresty nginx lua

下载fastdfs-nginx-module

wget https://github.com/happyfish100/fastdfs-nginx-module/archive/master.zip
unzip fastdfs-nginx-module-master.zip
           

下载openresty nginx lua

wget http://openresty.org/download/ngx_openresty-1.7.10.1.tar.gz
tar -zxvf ngx_openresty-1.7.10.1.tar.gz
           

安装编译环境

sudo yum install

pcre-devel openssl openssl-devel

编译安装ngx_openresty

cd ngx_openresty-1.7.10.1
           
sudo ./configure --with-luajit --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --add-module=/usr/yKF6600/fdfs/fastdfs-nginx-module-master/src 
           

sudo gmake

sudo gmake install

配置测试客户端

为50机器添加client配置文件

cd /etc/fdfs
sudo cp client.conf.sample client.conf
           
修改client.conf文件的如下内容
           
# the base path to store log files
base_path=/data/fdfs
           
# tracker_server can ocur more than once, and tracker_server format is
#  "host:port", host can be hostname or ip address
tracker_server=              192.168.1.              50:22122
           

51配置类似

创建nginx使用的目录

sudo mkdir /data/ngx
           
sudo chown -R fastdfs:fastdfs /data
           

创建mod_fastdfs.conf文件

sudo cp /usr/yKF6600/fdfs/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/
           

修改mod_fastdfs.conf

修改group1的mod_fastdfs.conf

base_path=/data/ngx

tracker_server=192.168.1.36:22122

group_name=group1

store_path0=/data/fdfs

url_have_group_name = true

log_filename=/var/log/ngx-fdfs.log

group_count = 2

[group1]

group_name=group1

storage_server_port=23000

store_path_count=1

store_path0=/data/fdfs

[group2]

group_name=group2

storage_server_port=23000

store_path_count=1

store_path0=/data/fdfs

修改group2的mod_fastdfs.conf

base_path=/data/ngx

tracker_server=192.168.1.36:22122

group_name=group2

store_path0=/data/fdfs

url_have_group_name = true

log_filename=/var/log/ngx-fdfs.log

group_count = 2

[group1]

group_name=group1

storage_server_port=23000

store_path_count=1

store_path0=/data/fdfs

[group2]

group_name=group2

storage_server_port=23000

store_path_count=1

store_path0=/data/fdfs

复制文件http.conf和mime.types到/etc/fdfs目录

cd /usr/yKF6600/fdfs/fastdfs-5.05/conf
           
sudo cp http.conf mime.types /etc/fdfs/
           

配置nginx配置

修改group1的nginx的/usr/local/openresty/nginx/conf/nginx.conf

#user  nobody;

worker_processes  1;

#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {

    worker_connections  1024;

}

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 {

        listen       80;

        server_name  localhost;

        #charset koi8-r;

        charset utf8;

        #access_log  logs/host.access.log  main;

        location /group1/M00 {

                alias /data/fdfs/data;

                ngx_fastdfs_module;

        }

        location / {

            root   html;

            index  index.html index.htm;

        }

        #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;

        }

    }

}

修改group2的nginx的/usr/local/openresty/nginx/conf/nginx.conf

#user  nobody;

user fastdfs;

worker_processes  1;

error_log   /data/ngx/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {

    worker_connections  1024;

}

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  /data/ngx/access.log  main;

    sendfile        on;

    #tcp_nopush     on;

    #keepalive_timeout  0;

    keepalive_timeout  65;

    #gzip  on;

    server {

        listen       80;

        server_name  localhost;

        #charset koi8-r;

        charset utf8;

               location /group2/M00 {

                        alias /data/fdfs/data;

                        #root /data/fdfs/data;

                        ngx_fastdfs_module;

                }

                #access_log  logs/host.access.log  main;

            }

        }

创建连接

sudo ln -s /data/fdfs/data /data/fdfs/data/M00
           

启动或者重载入nginx配置文件

sudo /usr/local/openresty/nginx/sbin/nginx      
或者      
sudo /usr/local/openresty/nginx/sbin/nginx -s reload      

重启storage命令

sudo /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

创建并上传测试文件

创建test.html,输入如下内容

test fastdfs

上传测试文件,命令为

/usr/bin/fdfs_test /etc/fdfs/client.conf upload test.html

结果类似为为

[2016-05-04 02:06:56] DEBUG - base_path=/data/fdfs, 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=172.16.4.97, port=23000

group_name=group1, ip_addr=172.16.4.97, port=23000

storage_upload_by_filename

group_name=group1, remote_filename=M00/00/00/rBAEYVcpWTqAWVsvAAAADcvBslg32.html

source ip address: 172.16.4.97

file timestamp=2016-05-04 02:06:50

file size=13

file crc32=3418468952

example file url: http://172.16.4.97/group1/M00/00/00/rBAEYVcpWTqAWVsvAAAADcvBslg32.html

storage_upload_slave_by_filename

group_name=group1, remote_filename=M00/00/00/rBAEYVcpWTqAWVsvAAAADcvBslg32_big.html

source ip address: 172.16.4.97

file timestamp=2016-05-04 02:06:50

file size=13

file crc32=3418468952

example file url: http://172.16.4.97/group1/M00/00/00/rBAEYVcpWTqAWVsvAAAADcvBslg32_big.html

FastDFS和openresty nginx lua安装介绍软件下载安装依赖安装libfastcommon安装fastdfs添加用户创建文件夹在tracker服务器上在storage服务器上创建并上传测试文件访问上传的页面在storage服务器上使用monitor检测是否有错误删除fdfs 参考

访问上传的页面

访问页面

curl http://172.16.4.97/group1/M00/00/00/rBAEYVcpWTqAWVsvAAAADcvBslg32_big.html

得到结果为

test fdfs

配置其他storage服务器请重复50服务器的配置过程

在storage服务器上使用monitor检测是否有错误

执行fdfs_monitor /etc/fdfs/storage.conf,配置正确显示如下信息:

[2016-05-04 17:36:37] DEBUG - base_path=/data/fdfs, 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 172.27.12.65:22122

group count: 2

Group 1:

group name = group1

disk total space = 36426 MB

disk free space = 31228 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

current trunk file id = 0

        Storage 1:

                id = 172.27.12.61

                ip_addr = 172.27.12.61  ACTIVE

                http domain =

                version = 5.05

                join time = 2016-05-04 17:05:01

                up time = 2016-05-04 17:05:01

                total storage = 36426 MB

                free storage = 31228 MB

                upload priority = 10

                store_path_count = 1

                subdir_count_per_path = 256

                storage_port = 23000

                storage_http_port = 8888

                current_write_path = 0

                source storage id =

                if_trunk_server = 0

                connection.alloc_count = 256

                connection.current_count = 0

                connection.max_count = 0

                total_upload_count = 0

                success_upload_count = 0

                total_append_count = 0

                success_append_count = 0

                total_modify_count = 0

                success_modify_count = 0

                total_truncate_count = 0

                success_truncate_count = 0

                total_set_meta_count = 0

                success_set_meta_count = 0

                total_delete_count = 0

                success_delete_count = 0

                total_download_count = 0

                success_download_count = 0

                total_get_meta_count = 0

                success_get_meta_count = 0

                total_create_link_count = 0

                success_create_link_count = 0

                total_delete_link_count = 0

                success_delete_link_count = 0

                total_upload_bytes = 0

                success_upload_bytes = 0

                total_append_bytes = 0

                success_append_bytes = 0

                total_modify_bytes = 0

                success_modify_bytes = 0

                stotal_download_bytes = 0

                success_download_bytes = 0

                total_sync_in_bytes = 0

                success_sync_in_bytes = 0

                total_sync_out_bytes = 0

                success_sync_out_bytes = 0

                total_file_open_count = 0

                success_file_open_count = 0

                total_file_read_count = 0

                success_file_read_count = 0

                total_file_write_count = 0

                success_file_write_count = 0

                last_heart_beat_time = 2016-05-04 17:31:37

                last_source_update = 1970-01-01 08:00:00

                last_sync_update = 1970-01-01 08:00:00

                last_synced_timestamp = 1970-01-01 08:00:00

Group 2:

group name = group2

disk total space = 36426 MB

disk free space = 32921 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

current trunk file id = 0

        Storage 1:

                id = 172.27.12.67

                ip_addr = 172.27.12.67 (ci-dmz-c03)  ACTIVE

                http domain =

                version = 5.05

                join time = 2016-05-04 17:33:01

                up time = 2016-05-04 17:33:01

                total storage = 36426 MB

                free storage = 32921 MB

                upload priority = 10

                store_path_count = 1

                subdir_count_per_path = 256

                storage_port = 23000

                storage_http_port = 8888

                current_write_path = 0

                source storage id =

                if_trunk_server = 0

                connection.alloc_count = 256

                connection.current_count = 0

                connection.max_count = 0

                total_upload_count = 0

                success_upload_count = 0

                total_append_count = 0

                success_append_count = 0

                total_modify_count = 0

                success_modify_count = 0

                total_truncate_count = 0

                success_truncate_count = 0

                total_set_meta_count = 0

                success_set_meta_count = 0

                total_delete_count = 0

                success_delete_count = 0

                total_download_count = 0

                success_download_count = 0

                total_get_meta_count = 0

                success_get_meta_count = 0

                total_create_link_count = 0

                success_create_link_count = 0

                total_delete_link_count = 0

                success_delete_link_count = 0

                total_upload_bytes = 0

                success_upload_bytes = 0

                total_append_bytes = 0

                success_append_bytes = 0

                total_modify_bytes = 0

                success_modify_bytes = 0

                stotal_download_bytes = 0

                success_download_bytes = 0

                total_sync_in_bytes = 0

                success_sync_in_bytes = 0

                total_sync_out_bytes = 0

                success_sync_out_bytes = 0

                total_file_open_count = 0

                success_file_open_count = 0

                total_file_read_count = 0

                success_file_read_count = 0

                total_file_write_count = 0

                success_file_write_count = 0

                last_heart_beat_time = 2016-05-04 17:31:45

                last_source_update = 1970-01-01 08:00:00

                last_sync_update = 1970-01-01 08:00:00

                last_synced_timestamp = 1970-01-01 08:00:00

删除fdfs

在50服务器执行删除命令:

sudo rm /usr/bin/fdfs_*

sudo rm -R /usr/local/openresty

sudo rm -R /etc/fdfs

sudo rm -R /data

sudo chkconfig --del fdfs_trackerd

有些lib库删不掉 - -!!

参考

http://www.centoscn.com/image-text/install/2015/0429/5298.html

转载于:https://www.cnblogs.com/Yin-BloodMage/p/5433629.html

继续阅读