过程
yum install -y gcc gcc-c++
先更新一下。
yum -y install libevent
安装更新一下。
好了,现在来进行centos的fastdfs配置了,请先准备好相关要编译的文件。
上传到centos后,分别解压缩进行配置。
libfastcommon安装
下面开始。
tar -xzvf libfastcommon-1.0.39.tar.gz -C /usr/local/
切换到usr/local下面
cd /usr/local/libfastcommon-1.0.39/
./make.sh
make结果为:
执行:
./make.sh install #安装
然后看看
ls /usr/lib64/libfastcommon.so
是不是存在。
接下来就是复制libfastcommon.so
###由于FastDFS程序引用usr/lib目录所以需要将/usr/lib64下的库文件拷贝至/usr/lib下。
cp /usr/lib64/libfastcommon.so /usr/lib
配置trackered
编译安装
解压缩:
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
启动tracker等
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
restart 可换为 start / stop
配置storage
由于上面已经安装过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
storage的操作
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
可以看到:
ls /home/fdfs_storage0/data
使用FastDFS自带工具测试
摘抄一下参考文章:
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
主要修改的有:base_path以及tracker_server
# 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 © 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: 0tracker_query_storage_store_list_without_group:
server 1. group_name=, ip_addr=你的ip地址, port=23000group_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 访问配置单机版
一般情况下,集群模式下面nginx要重新导入fastdfs的插件重新编译,这里提供一个懒人的单击版做法,就是直接在nginx里面定位目录。
话说我们可以用nginx直接读取硬盘上的静态文件的话,如果中间加一个数据库再加一个java的中转程序在n台机器上面随机抽一台访问,那不也是负载均衡了吗?
使用
-- 大写的V
nginx -V
获得nginx的配置文件所在:
打开/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两种方式,他们有什么区别呢?
root以及alias两种方式区别
简而言之:
当访问/i/top.gif时,root是去/data/w3/i/top.gif请求文件,alias是去/data/w3/images/top.gif请求,也就是说
root响应的路径:配置的路径+完整访问路径(完整的location配置路径+静态文件)
alias响应的路径:配置路径+静态文件(去除location中配置的路径)
配置nginx
修改:
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配置完事。