FastDFS文件集群服务器搭建
软件准备:
fastdfs-5.10.tar.gz
nginx-1.10.0.tar.gz
libevent-2.1.8-stable.tar.gz(底层的网络库)
libfastcommon-master.zip
pcre pcre-devel zlib zlib-devel openssl openssl-devel(安装Nginx依赖包)
fastdfs-nginx-module_v1.16.tar.gz
第一步(libevent):
./configure --prefix=/usr
make
make install
第二步(libfastcommon):
./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
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
第三步(fastdfs):
./make.sh
./make.sh install
cp fastdfs-5.10/conf/http.conf /etc/fdfs/
cp fastdfs-5.10/conf/mime.types /etc/fdfs/
第四步(fastdfs-tracker配置):
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
disabled=false
bind_addr=
port=22122
base_path=/home/hmj/fdfs
store_group=group2
run_by_group=
run_by_user=
allow_hosts=*
http.server_port=8080
http.check_alive_interval=30
http.check_alive_type=tcp
http.check_alive_uri=/status.html
启动 tracker 服务:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
重启 tracker 服务:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
查看是否有 tracker 进程:ps aux | grep tracker
第五步(fastdfs-storage配置):
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
disabled=false
group_name=group1
# the storage server port
port=23000
base_path=/home/hmj/storage/fdfs
store_path0=/home/hmj/storage/img0
tracker_server=172.16.59.154:22122
log_level=info
run_by_group=
run_by_user=
allow_hosts=*
keep_alive=0
http.domain_name=
# the port of the web server on this storage server
http.server_port=8888
启动 storage 服务:/usr/bin/fdfs_storaged /etc/fdfs/storage.conf,首次启动会很慢,因为它在创建预设存储文件的目录
重启 storage 服务:/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
查看是否有 storage 进程:ps aux | grep storage
第六步(fastdfs-client配置):
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
vim /etc/fdfs/client.config
connect_timeout=30
network_timeout=60
base_path=/home/hmj/fdfs/client
# 指定 tracker 服务器的 IP 和端口
tracker_server=192.168.1.114:22122
log_level=info
use_connection_pool = false
connection_pool_max_idle_time = 3600
load_fdfs_parameters_from_tracker=false
use_storage_id = false
storage_ids_filename = storage_ids.conf
http.tracker_server_port=80
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /opt/1460995882635.jpg
第七步(nginx + fastdfs-nginx-module):
apt-get install libpcre3 libpcre3-dev
apt-get install zlib1g-dev
apt-get install openssl libssl-dev
vim fastdfs-nginx-module/src/config
找到下面一行包含有 local 字眼去掉,因为这三个路径根本不是在 local 目录下的
CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"
改为如下:
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
cd nginx-1.10.3/
./configure --prefix=/usr/local/nginx
--pid-path=/var/local/nginx/nginx.pid
--lock-path=/var/lock/nginx/nginx.lock
--error-log-path=/var/log/nginx/error.log
--http-log-path=/var/log/nginx/access.log
--with-http_gzip_static_module
--http-client-body-temp-path=/var/temp/nginx/client
--http-proxy-temp-path=/var/temp/nginx/proxy
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi
--http-scgi-temp-path=/var/temp/nginx/scgi
--add-module=/home/hmj/fastdfs-nginx-module-master/src
make
make install
cp fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs
vim /etc/fdfs/mod_fastdfs.conf
connect_timeout=2
network_timeout=30
# the base path to store log files
base_path=/tmp
load_fdfs_parameters_from_tracker=true
storage_sync_file_max_delay = 86400
use_storage_id = false
storage_ids_filename = storage_ids.conf
tracker_server=172.16.59.154:22122
# the port of the local storage server
storage_server_port=23000
group_name=group1
url_have_group_name = true
# must same as storage.conf
store_path_count=1
# must same as storage.conf
store_path0=/home/hmj/storage/img0
log_level=info
log_filename=
response_mode=proxy
if_alias_prefix=
flv_support = true
flv_extension = flv
group_count = 0
nginx配置
vim /usr/local/nginx/conf/nginx.conf
user root;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
# 访问本机
server_name 192.168.1.114;
# 拦截包含 /group1/M00 请求,使用 fastdfs 这个 Nginx 模块进行转发
location /group1/M00 {
ngx_fastdfs_module;
}
}
}