1.确保已安装了gcc,unzip(基本工具)
2.安装libfastcommon-master
步骤:
unzip libfastcommon-master.zip
cd libfastcommon-master
./make.sh
./make.sh install
3.安装fastdfs-master
步骤:
unzip fastdfs-master-V5.05.zip
cd fastdfs-master
./make.sh
./make.sh install
4.配置并启动FastDFS
4.1配置tracker服务器
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
vi /etc/fdfs/tracker.conf
# 修改的内容如下:
disabled=false # 启用配置文件
port=22122 # tracker服务器端口(默认22122)
base_path=/fastdfs/tracker # 存储日志和数据的根目录
新建目录: /fastdfs/tracker
关闭防火墙: chkconfig iptables off
启动tracker服务器: /etc/init.d/fdfs_trackerd start
停止tracker服务器: /etc/init.d/fdfs_trackerd stop
检查FastDFS Tracker Server是否启动成功:
ps -ef | grep fdfs_trackerd
设置tracker服务开机启动:
chkconfig fdfs_trackerd on
备注:由于系统是ubuntu,无法使用chkconfig配置开机启动,centos无此问题,尚未解决!
4.2配置storage服务器:
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
vi /etc/fdfs/storage.conf
# 修改的内容如下:
disabled=false # 启用配置文件
port=23000 # storage服务端口
base_path=/fastdfs/storage # 数据和日志文件存储根目录
store_path0=/fastdfs/storage # 第一个存储目录
tracker_server=192.168.56.101:22122 # tracker服务器IP和端口
http.server_port=8888 # http访问文件的端口
新建目录: /fastdfs/storage
关闭防火墙: chkconfig iptables off
启动storage服务器:/etc/init.d/fdfs_storaged start
停止storage服务器:/etc/init.d/fdfs_storaged stop
检查FastDFS Tracker Server是否启动成功:
ps -ef | grep fdfs_storaged
设置storage服务开机启动:
chkconfig fdfs_storaged on
备注:同上
5.测试FastDFS
5.1配置Tracker客户端
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
vi /etc/fdfs/client.conf
# 修改以下配置,其它保持默认
base_path=/fastdfs/tracker
tracker_server=192.168.56.101:22122
5.2执行客户端上传命令
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/mao/cs.jpg
group1/M00/00/00/wKg4ZVh8U-SANp6OAAHhOIDwENQ234.jpg
能返回以上文件ID,说明文件已经上传成功
6使用nginx访问FastDFS
6.1在所有storage节点安装fastdfs-nginx-module
unzip fastdfs-nginx-module-master.zip
6.2安装Nginx
centos下直接运行yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
但由于ubuntu无法这样操作,所以我是最后一直报缺少pcre库,先是通过sudo apt search pcre查询库,再通过sudo apt-get install libpcre3 libpcre3-dev安装依赖库解决了,当然,安装过程中一直有没权限建立文件/文件夹就不提了
注意:在执行./configure配置nginx参数的时候,需要将fastdfs-nginx-moudle源码作为模块编译进去:
进入nginx-1.10.0.tar.gz解压后的目录
./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx --add-module=/usr/local/模块存放位置/fastdfs-nginx-module-master/src
编译并安装:
make && make install
启动、停止、重启
# 1.启动nginx
nginx (通过绝对路径启动的nginx,因为系统中有安装其他nginx,但是我不想改哪个nginx,所以重新安装nginx,不同的路径,还好最后没影响)
# 可通过ps -ef | grep nginx查看nginx是否已启动成功
# 2.停止nginx
nginx -s stop
nginx亦未配置开机自启
7配置nginx与FastDFS关联配置文件
复制 fastdfs-nginx-module 源码中的配置文件到/etc/fdfs 目录, 并修改
cp /usr/local/mao/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/
vi /etc/fdfs/mod_fastdfs.conf
修改以下配置:
connect_timeout=10 # 客户端访问文件连接超时时长(单位:秒)
base_path=/tmp # 临时目录
tracker_server=192.168.56.101:22122 # tracker服务IP和端口
storage_server_port=23000 # storage服务端口
group_name=group1 # 组名
url_have_group_name=true # 访问链接前缀加上组名
store_path0=/fastdfs/storage # 文件存储路径
复制 FastDFS 的部分配置文件到/etc/fdfs 目录
cd /usr/local/mao/fastdfs-master/conf/
cp http.conf mime.types /etc/fdfs/
在/fastdfs/storage文件存储目录下创建软连接,将其链接到实际存放数据的目录
ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00
配置nginx访问storage文件
vi /opt/nginx/conf/nginx.conf
user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8888;
server_name localhost;
location ~/group([0-9])/M00 {
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
8启动测试
nginx -s reload
启动nginx后,如果打印出ngx_http_fastdfs_set pid=xxx,表示fastdfs-nginx-module模块加载成功了,xxx表示模块的进程ID。
如果报:
nginx: [error] open() "/opt/nginx/logs/nginx.pid" failed (2: No such file or directory)
则执行:nginx -c /opt/nginx/conf/nginx.conf
成功后访问ip:8888/ 页面出现welcome to nginx! 就可以通过ip:8888/00/00/xxxxxxxxxxxxxxxxxxxxx.jpg访问图片资源了
总结:如果是centos配置并且服务器本来没有nginx的话,那直接安装上面一步步来就很轻松了,如果是ubuntu并且服务器本来就有nginx的话,那可能需要确认的就多了,比如原来nginx启动和安装的位置,要保证不冲突,其次各个依赖库的安装,最后绝对路径下启动以及开机自启的问题