FastDFS +nginx单机版

FastDFS 配置环境

安装C环境
yum install -y gcc gcc-c++

//查看服务器是否安装了:libevent
先用:ls -al /usr/lib | grep libevent  查看是否已安装,如果已安装且版本低于1.3
则先通过:rpm -e libevent —nodeps 进行卸载。

FastDFS 5.05版本不再依赖libevent,而依赖于libfastcommon,因此需要先安装libfastcommon。
软件包下载地址:https://pan.baidu.com/s/1K9p4zpMHyuAUcDPzfq8RRg 密码:m1h9
通过CRT软件上传至Linux服务器
因为下载的文件为zip压缩格式文件所以解压使用
unzip libfastcommon-master.zip
//放置个人习惯的安装目录
cp -r libfastcommon-master/ /usr/local/src/
cd /usr/local/src/libfastcommon-master/
./make.sh
./make.sh install

//建立软链接
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so

安装FastDFS

//安装FastDFS
tar zxf FastDFS_v5.05.tar.gz
cd FastDFS
./make.sh
./make.sh install
安装成功后可以cd /etc/fdfs文件下查看3个配置文件

配置tracker节点

mkdir /data/fastdfs  #创建tracker的数据文件和日志存储目录
cd /etc/fdfs
mv tracker.conf.sample tracker.conf 
vim tracker.conf #修改的文件内容如下(基础配置,不考虑性能调优情况下):
base_path=/data/fastdfs  #设置 tracker 的数据文件和日志目录(需预先创建)
http.server_port=6666  #设置http端口号,默认为8080
//建立关联
ln -s /usr/bin/fdfs_trackerd /usr/local/bin
ln -s /usr/bin/stop.sh /usr/local/bin
ln -s /usr/bin/restart.sh /usr/local/bin
service fdfs_trackerd start  #启动tracker节点
cd /data/fastdfs    #查看启动后文件夹下两个文件内容
netstat -anp|grep fdfs  #查看端口号是否监听
Snip20180826_3.png

配置storage节点

mkdir /data/fastdfs-storage  #创建
cd /etc/fdfs/
mv storage.conf.sample storage.conf
vim storage.conf#修改的文件内容如下(基础配置,不考虑性能调优情况下):
group_name=group1   #组名,可根据实际情况修改
base_path=/data/fastdfs-storage #设置storage数据文件和日志目录,需预先创建
store_path_count=1  #存储路径个数,需要和 store_path 个数匹配、
store_path0=/data/fastdfs-storage #存储路径
tracker_server=服务器公网IP:22122 # #tracker 服务器的 IP地址和端口号,如果是单机搭建,IP不要写127.0.0.1,否则启动不成功。
http.server_port=8888  #设置 http 端口号

ln -s /usr/bin/fdfs_storaged /usr/local/bin
service fdfs_storaged start #启动storage,启动会根据配置文件的设置自动创建多级存储目录

效验

cat /data/fastdfs-storage/logs/storaged.log  #查看日志如下
[2018-08-26 15:17:33] INFO - FastDFS v5.05, base_path=/data/fastdfs-storage, store_path_count=1, subdir_count_per_path=256, group_name=group1, run_by_group=, run_by_user=, connect_timeout=30s, network_timeout=60s, port=23000, bind_addr=, client_bind=1, max_connections=256, accept_threads=1, work_threads=4, disk_rw_separated=1, disk_reader_threads=1, disk_writer_threads=1, buff_size=256KB, heart_beat_interval=30s, stat_report_interval=60s, tracker_server_count=1, sync_wait_msec=50ms, sync_interval=0ms, sync_start_time=00:00, sync_end_time=23:59, write_mark_file_freq=500, allow_ip_count=-1, file_distribute_path_mode=0, file_distribute_rotate_count=100, fsync_after_written_bytes=0, sync_log_buff_interval=10s, sync_binlog_buff_interval=10s, sync_stat_file_interval=300s, thread_stack_size=512 KB, upload_priority=10, if_alias_prefix=, check_file_duplicate=0, file_signature_method=hash, FDHT group count=0, FDHT server count=0, FDHT key_namespace=, FDHT keep_alive=0, HTTP server port=8888, domain name=, use_access_log=0, rotate_access_log=0, access_log_rotate_time=00:00, rotate_error_log=0, error_log_rotate_time=00:00, rotate_access_log_size=0, rotate_error_log_size=0, log_file_keep_days=0, file_sync_skip_invalid_record=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s
data path: /data/fastdfs-storage/data, mkdir sub dir...
mkdir data path: 00 ...
mkdir data path: 01 ...
mkdir data path: 02 ...
... ...
mkdir data path: FE ...
mkdir data path: FF ...
data path: /data/fastdfs-storage/data, mkdir sub dir done.
[2018-08-26 15:17:39] INFO - file: storage_param_getter.c, line: 191, use_storage_id=0, id_type_in_filename=ip, storage_ip_changed_auto_adjust=1, store_path=0, reserved_storage_space=10.00%, use_trunk_file=0, slot_min_size=256, slot_max_size=16 MB, trunk_file_size=64 MB, trunk_create_file_advance=0, trunk_create_file_time_base=02:00, trunk_create_file_interval=86400, trunk_create_file_space_threshold=20 GB, trunk_init_check_occupying=0, trunk_init_reload_from_binlog=0, trunk_compress_binlog_min_interval=0, store_slave_file_use_link=0
[2018-08-26 15:17:39] INFO - file: storage_func.c, line: 254, tracker_client_ip: 172.21.0.7, my_server_id_str: 172.21.0.7, g_server_id_in_filename: 117446060
[2018-08-26 15:17:39] INFO - file: tracker_client_thread.c, line: 310, successfully connect to tracker server 140.142.190.248:22122, as a tracker client, my ip is 172.21.0.7
[2018-08-26 15:17:39] INFO - file: storage_sync.c, line: 2698, successfully connect to storage server 140.142.190.248:23000
//确认启动成功后,可以运行 fdfs_monitor 查看 storage服务器是否已经登记到 tracker服务器。
[2018-08-26 15:18:55] DEBUG - base_path=/data/fastdfs-storage, 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 140.143.193.248:22122

group count: 1

Group 1:
group name = group1
disk total space = 50395 MB
disk free space = 42721 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 = 140.143.193.248
                ip_addr = 140.142.190.248 ACTIVE //表示成功
                ... ...
                last_heart_beat_time = 2018-08-26 15:18:38
                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 

给storage安装nginx并配置

主要目的是为了提供 http 的访问服务,同时解决 group 中 storage服务器的同步延迟问题。
nginx需要添加fastdfs-nginx-module模块
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/src/
tar zxf nginx-1.8.0.tar.gz -C /usr/local/src/

cd /usr/local/src/nginx    
//--prefix为指定安装路径
./configure --prefix=/data/nginx --add-module=/usr/local/src/fastdfs-nginx-module/src

ln -sv /usr/include/fastcommon /usr/local/include/fastcommon
ln -sv /usr/include/fastdfs /usr/local/include/fastdfs
make
make install

//拷贝配置文件(注意下面cp路径为安装软件路径)
cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
cp /download/fastDFS_All/FastDFS/conf/mime.types /etc/fdfs/
cp /download/fastDFS_All/FastDFS/conf/http.conf /etc/fdfs/
cp /download/fastDFS_All/FastDFS/conf/anti-steal.jpg /etc/fdfs/

//nginx添加配置
vim /data/nginx/conf/nginx.conf
//添加如下配置
listen       9999;
location ~/group[1-3]/M00 {
        root /data/fastdfs-storage/data;
        ngx_fastdfs_module;
    } 
vim /etc/fdfs/mod_fastdfs.conf 修改配置
base_path=/data/fastdfs-storage  #保存日志目录
tracker_server=192.168.116.145:22122  #tracker 服务器的 IP 地址以及端口号
url_have_group_name = true #文件 url 中是否有 group 名
store_path0=/data/fastdfs-storage # 存储路径
http.need_find_content_type=true  # 从文件扩展名查找文件类型 (nginx 时 为true)
group_count = 3  #设置组的个数,事实上这次只使用了group1
在文件末添加如下内容:
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/data/fastdfs-storage

[group2]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/data/fastdfs-storage

[group3]
group_name=group3
storage_server_port=23000
store_path_count=1
store_path0=/data/fastdfs-storage
ln -s /data/fastdfs-storage/data /data/fastdfs-storage/data/M00
/data/nginx/sbin/nginx -s reload ##重启
/data/nginx/sbin/nginx  ###启动

给tracker安装nginx并配置

./configure --prefix=/data/nginx2 --add-module=/usr/local/src/fastdfs-nginx-module/src
make
make install
nginx 配置文件
//添加至http{ 下
upstream fdfs_group1 {
        server 127.0.0.1:9999;
    }
//添加至server{下
location /group1/M00 {
        proxy_pass http://fdfs_group1;
    }

listen       80;    改为->  listen       88;//此处为个人习惯

/data/nginx2/sbin/nginx  //启动nginx2
# cd /etc/fdfs/
# mv client.conf.sample client.conf  #修改内容如下:
base_path=/data/fastdfs-storage  #日志存放路径
tracker_server=140.142.190.248:22122  #tracker 服务器 IP 地址和端口号
http.tracker_server_port=6666  # tracker 服务器的 http 端口号,必须和tracker的设置对应起来
测试是否可以上传
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /download/Snip20180826_3.png 
group1/M00/00/00/rBUAB1uCbEeAQKf-AADkTUguGH0393.png #此为上传成功后的图片地址
140.142.190.248/group1/M00/00/00/rBUAB1uCbEeAQKf-AADkTUguGH0393.png  #使用网址查看
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容