我的集群信息
ip | 作用 |
---|---|
192.168.150.128 | tracker |
192.168.150.129 | storage1 |
192.168.150.130 | storage2 |
下载 libfastcommon.tar.gz 、fastdfs.tar.gz 和 nginx-1.6.2.tar.gz
cd software
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.39.tar.gz -SO libfastcommon.tar.gz
wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz -SO fastdfs.tar.gz
wget http://nginx.org/download/nginx-1.6.2.tar.gz
解压 libfastcommon.tar.gz
sudo tar -zxvf libfastcommon.tar.gz -C /usr/local/fast
cd /usr/local/fast/libfastcommon-1.0.39/
sudo ./make.sh
sudo ./make.sh install
解压 fastdfs.tar.gz
cd /usr/local/software
sudo tar -zxvf fastdfs.tar.gz -C /usr/local/fast/
cd /usr/local/fast/fastdfs-5.11/
sudo ./make.sh
sudo ./make.sh install
2、配置tracker
现在开始操作 tracker 机(192.168.150.128)
进入 /etc/fdfs 目录,将 tracker.conf.sample 复制一份并重命名为 tracker.conf
cd /etc/fdfs/
sudo cp tracker.conf.sample tracker.conf
更改 tracker.conf 的配置
sudo vi /etc/fdfs/tracker.conf
目前只需要更改下面这一处的路径,作为存储数据和日志的路径,修改为自己的路径,路径要存在
bash_path=/home/tracker1/tracker
上面这个路径一定要存在,不存在的话不要忘了创建
mkdir /home/tracker1/tracker
/etc/init.d/fdfs_trackerd start
如果有其他 tracker 机也要进行同样的配置
启动 tracker
/etc/init.d/fdfs_trackerd start
上边命令没有起来
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
查看进程
ps -ef | grep fdfs
或者下面这个(需要 sudo 权限)
sudo netstat -tunpl | grep fdfs
停止 tracker
/etc/init.d/fdfs_trackerd stop
3、配置storage
我这里只有一组,这一组的两个机器配置相同,如果有多个组的话同一组的配置也应当是相同的,我这里以一台机器为例
进入目录,复制一份 storage.conf.sample 并重命名为 storage.conf
cd /etc/fdfs
sudo cp storage.conf.sample storage.conf
更改 storage.conf
sudo vi storage.conf
有下面几个地方需要注意
启用配置文件 ( disabled=false )
disabled=false
组名,第一组为 group1,第二组为 group2
group_name=group1
storage 的端口,同一组的端口要相同
port=23000
存 storage 的日志的路径,需要存在
store_path0=/home/storage1/storage
存储路径个数, 和 store_path 的个数要匹配
store_path_count=1
tracker 的 ip 和端口
tracker_server=192.168.150.128:22122
http的端口
http.server_port=8888
上面存数据的路径没有的话记得创建
mkdir /home/storage1/storage
启动 storage(启动前 tracker 要先启动)
/etc/init.d/fdfs_storaged start
停止 storage
/etc/init.d/fdfs_storaged stop
查看集群的结构信息
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
4、传一个文件测试一下
在 tracker 上,有多个的话就使用任意一个
首先复制一份 client.conf.sample 并重命名为 client.conf
cd /etc/fdfs/
sudo cp client.conf.sample client.conf
更改 client.conf
sudo vi client.conf
要修改的内容如下
base_path 路径要存在,tracker_server 填写 tracker 机的 ip,端口号不用变,如果有多台 tracker 就在后面加
上传文件
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/software/fastdfs.tar.gz
storage 上有了这个文件,同一个组的 storage 中的文件时会保持一致
,我这里只有一组
ll /home/storage1/storage/data/00/00
在storage上安装nginx
注意:fastdfs-nginx-module模块只需要安装到storage上
tar -xvzf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local
tar -zvxf nginx-1.7.9.tar.gz -C /usr/local
需要先配置软链接:
ln -sv /usr/include/fastcommon /usr/local/include/fastcommon
ln -sv /usr/include/fastdfs /usr/local/include/fastdfs
ln -sv /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
cd /usr/local/nginx-1.7.9
./configure --prefix=/usr/local/nginx --add-module=/usr/local/fastdfs-nginx-module/src
configure 成功输出结果:
checking for OS
+ Linux 2.6.32-431.el6.x86_64 x86_64
checking for C compiler ... found
+ using GNU C compiler
+ gcc version: 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)
checking for gcc -pipe switch ... found
......
nginx http access log file: "/usr/local/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
configure成功了
接下来执行make和make install
make
确定编译没有出错,再进行install
make install
配置
配置fastdfs-nginx-module
进入fastdfs-nginx-module的src目录,将md_fastdfs.conf配置文件拷贝到/etc/fdfs/目录中
cd /usr/local/fastdfs-nginx-module/src
cp mod_fastdfs.conf /etc/fdfs/
配置 mod_fastdfs.conf
vim /etc/fdfs/mod_fastdfs.conf
一般只需改动以下几个参数即可:
base_path=/home/storage1/storage #保存日志目录
tracker_server=192.168.150.128:22122
storage_server_port=23000 #storage服务器的端口号
group_name=group1 #当前服务器的group名
url_have_group_name = true #文件url中是否有group名
store_path_count=1 #存储路径个数,需要和store_path个数匹配
store_path0=/root/fastdfs #存储路径
group_count = 2 #设置组的个数
在末尾增加3个组的具体信息:
group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/home/storage1/storage
建立M00至存储目录的符号连接。
ln -s /root/fastdfs/data /root/fastdfs/data/M00
ll /root/fastdfs/data/M00
配置nginx
编辑/usr/local/nginx/conf
配置文件目录下的nginx.conf,设置添加storage信息并保存。
vim /usr/local/nginx/conf/nginx.conf
将server段中的listen端口号改为8888,启动用户使用root。
user root
listen 8888;
在server段中添加:
location ~/group[1-2]/M00 {
root /root/fastdfs/data;
ngx_fastdfs_module;
}
复制fastdfs中的http.conf、mime.types文件到/etc/fdfs
cp /usr/local/fastdfs-5.05/conf/http.conf /usr/local/fastdfs-5.05/conf/mime.types /etc/fdfs
启动nginx,确认启动是否成功
cd /usr/local/nginx/sbin/nginx
./nginx
将nginx设置为开机启动:
vim /etc/rc.d/rc.local
将运行命令行添加进文件:/usr/local/nginx/sbin/nginx
至此,nginx以及FastDFS插件模块设置完成。
在tracker上安装nginx
在tracker上安装的nginx主要为了提供http访问的反向代理、负载均衡以及缓存服务。
解压
tar -zvxf nginx-1.7.9.tar.gz -C /usr/local
运行./configure进行安装前的设置,主要设置安装路径
cd /usr/local/nginx-1.7.9
./configure --prefix=/usr/local/nginx
运行make进行编译,确保编译成功。
make
运行make install进行安装。
make install
配置
编辑/usr/local/nginx/conf配置文件目录下的nginx.conf,设置负载均衡
vim /usr/local/nginx/conf/nginx.conf
配置信息
http {
#设置group1的服务器
upstream fdfs_group1 {
server 192.168.150.129:8888 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.150.130:8888 weight=1 max_fails=2 fail_timeout=30s;
}
server {
#设置服务器端口
listen 8888;
#设置group1的负载均衡参数
location /group1/M00 {
proxy_pass http://fdfs_group1;
}
}
启动nginx,确认启动是否成功。
cd /usr/local/nginx/sbin/nginx
./nginx
至此,nginx设置完成。
尝试上传一个文件到FastDFS
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /home/1.jpg
group1/M00/00/00/wKgAA2M1T_SAO5BiAAdYDLz1B6c490.jpg
然后使用浏览器访问:
192.168.150.128:8888/group1/M00/00/00/wKgAA2M1T_SAO5BiAAdYDLz1B6c490.jpg