服务器用centos7的情况是很常见的,本篇文章进行centos+fastdfs的搭建
Centos7 上安装 FastDFS
yum install -y gcc gcc-c++
yum -y install libevent
安装更新一下。
好了,现在来进行centos的fastdfs配置了,请先准备好相关要编译的文件。
具体可以参考:
ubntu下单机配置fastdfs作为开发环境(1)—fastdfs的安装、配置及测试
上传到centos后,分别解压缩进行配置。
下面开始。
tar -xzvf libfastcommon-1.0.39.tar.gz -C /usr/local/
切换到usr/local下面
cd /usr/local/libfastcommon-1.0.39/
./make.sh
./make.sh install #安装
然后看看
ls /usr/lib64/libfastcommon.so
是不是存在。
接下来就是复制libfastcommon.so
###由于FastDFS程序引用usr/lib目录所以需要将/usr/lib64下的库文件拷贝至/usr/lib下。
cp /usr/lib64/libfastcommon.so /usr/lib
注意,这一步我没办法完成,因为安装时候已经有了:
解压缩:
tar -zxvf fastdfs-5.11.tar.gz -C /usr/local
进入目录:
cd /usr/local/fastdfs-5.11/
./make.sh && ./make.sh install #编译之后接着进行安装
编译过后你依然在安装目录下面,你会发现多了些东西,其中有一个conf文件夹,里面有:
ls conf
各个配置文件,好了,conf下的文件拷贝到/etc/fdfs/下;
原来目录有:
ls /etc/fdfs
client.conf.sample storage.conf.sample storage_ids.conf.sample tracker.conf.sample
复制配置文件
cp conf/* /etc/fdfs/
现在目录有:
ls /etc/fdfs
anti-steal.jpg client.conf.sample mime.types storage.conf.sample storage_ids.conf.sample tracker.conf.sample
client.conf http.conf storage.conf storage_ids.conf tracker.conf
切换目录到: /etc/fdfs/,
(1)切换目录到: /etc/fdfs/ 目录下;
(2)拷贝一份新的tracker配置文件
// cp tracker.conf.sample tracker.conf —不用做了,因为本身就有tracker.conf了
(3)修改tracker.conf ; vim tracker.conf
base_path=/home/yuqing/fastdfs 改为: base_path=/home/fastdfs
http.server_port 改为: 80
base_path=/home/fastdfs
http.server_port=80 #配置http端口
(4)创建 /home/fastdfs 目录
mkdir /home/fastdfs
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
restart 可换为 start / stop
由于上面已经安装过FastDFS,这里只需要配置storage就好了;
(1)切换目录到: /etc/fdfs/ 目录下;
(2)拷贝一份新的storage配置文件
cp storage.conf.sample storage.conf
(3)修改storage.conf ; vim storage.conf
group_name=group1 #配置组名
base_path=/home/yuqing/fastdfs 改为: base_path=/home/fastdfs
#store存放文件的位置(store_path)
store_path0=/home/yuqing/fastdfs 改为: store_path0=/home/fdfs_storage
#如果有多个挂载磁盘则定义多个store_path,如下
#store_path1=.....
#store_path2=......
#配置tracker服务器:IP
tracker_server=192.168.172.20:22122
#如果有多个则配置多个tracker
#tracker_server=192.168.101.4:22122
#配置http端口
http.server_port=88
(4)创建 /home/fdfs_storage 目录
mkdir /home/fdfs_storage
(5)启动storage, 运行命令如下:
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
1/切换到/etc/fdfs/
2/修改storage.conf
cd /etc/fdfs/
vim storage.conf
修改内容为:
group_name=group1 #配置组名
base_path=/home/yuqing/fastdfs 改为: base_path=/home/fastdfs
#store存放文件的位置(store_path)--特意改为序号0.。
store_path0=/home/yuqing/fastdfs 改为: store_path0=/home/fdfs_storage0
#如果有多个挂载磁盘则定义多个store_path,如下
#store_path1=.....
#store_path2=......
#配置tracker服务器:IP
tracker_server=192.168.172.20:22122
#如果有多个则配置多个tracker
#tracker_server=192.168.101.4:22122
#配置http端口
http.server_port=88
然后,添加文件目录
mkdir /home/fdfs_storage0
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
可以看到:
ls /home/fdfs_storage0/data
摘抄一下参考文章:
(1)切换目录到 /etc/fdfs/ 目录下;
(2)拷贝一份新的client配置文件
cp client.conf.sample client.conf
(3)修改client.conf ; vim client.conf,修改基本路径和tracker_server如下:
注意:若tracker有多个,可以配置多个,如下:
#tracker_server=......
#tracker_server=......
首先,切换到/etc/fdfs/
cd /etc/fdfs/
然后,vim client.conf
主要修改的有:
# the base path to store log files
base_path=/home/yuqing/fastdfs 改为:base_path=/home/fastdfs
# 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.0.197:22122 -》你自己的ip
修改完后,目前直接来操作一下。。对了,我专门找了个狗照,上传到服务器:
好了,来测试一下:
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /root/dist/dog.jpg
可以看到:
This is FastDFS client test program v5.11
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.
[2019-05-14 16:08:31] DEBUG - base_path=/home/fastdfs, 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=你的ip地址, port=23000
group_name=group1, ip_addr=你的ip地址, port=23000
storage_upload_by_filename
group_name=group1, remote_filename=M00/00/00/rBIKaFzad3-Af1dfAABQSC3AH9A097.jpg
source ip address: 你的ip地址
file timestamp=2019-05-14 16:08:31
file size=20552
file crc32=767565776
example file url: http://你的ip地址/group1/M00/00/00/rBIKaFzad3-Af1dfAABQSC3AH9A097.jpg
storage_upload_slave_by_filename
group_name=group1, remote_filename=M00/00/00/rBIKaFzad3-Af1dfAABQSC3AH9A097_big.jpg
source ip address: 你的ip地址
file timestamp=2019-05-14 16:08:31
file size=20552
file crc32=767565776
example file url: http://你的ip地址/group1/M00/00/00/rBIKaFzad3-Af1dfAABQSC3AH9A097_big.jpg
上传成功。
看看文件存在与否:
ls /home/fdfs_storage0/group1/M00/00/00/rBIKaFzad3-Af1dfAABQSC3AH9A097.jpg
一般情况下,集群模式下面nginx要重新导入fastdfs的插件重新编译,这里提供一个懒人的单击版做法,就是直接在nginx里面定位目录。
话说我们可以用nginx直接读取硬盘上的静态文件的话,如果中间加一个数据库再加一个java的中转程序在n台机器上面随机抽一台访问,那不也是负载均衡了吗?
使用
-- 大写的V
nginx -V
打开/etc/nginx看到配置文件:
cd /etc/nginx
ls
在conf.d里面
cd conf.d
静态文件代理有两种方式:
例如:
location /t_dist/{
root /root/dist/;
# autoindex on;
}
location /t_dist/{
alias /root/dist/;
# autoindex on;
}
就是说,有root以及alias两种方式,他们有什么区别呢?
请看:
Nginx 配置静态文件404问题
简而言之:
当访问/i/top.gif时,root是去/data/w3/i/top.gif请求文件,alias是去/data/w3/images/top.gif请求,也就是说
root响应的路径:配置的路径+完整访问路径(完整的location配置路径+静态文件)
alias响应的路径:配置路径+静态文件(去除location中配置的路径)
修改:
vim nginx.conf
添加:
location /group1/M00/{
alias /home/fdfs_storage0/data/;
}
就是这样:
配置文件如下:
user root;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
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 /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
client_max_body_size 20m;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location /group1/M00/{
alias /home/fdfs_storage0/data/;
}
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
}
然后:
nginx -s reload
熟悉的狗终于出现啦。。。
单机版fastdfs配置完成。