Ubuntu 14.04下部署FastDFS 5.08+Nginx 1.9.14
2017-06-24 19:25
441 查看
参考: Ubuntu 14.04下部署FastDFS 5.08+Nginx 1.9.14
最新的版本可以在这里获取,本文下载的版本是5.08,FastDFS是为互联网应用量身定做的一套分布式文件存储系统,非常适合用来存储用户图片、视频、文档等文件。对于互联网应用,和其他分布式文件系统相比,优势非常明显。具体情况大家可以看相关的介绍文档,包括FastDFS介绍PPT等等。
出于简洁考虑,FastDFS没有对文件做分块存储,因此不太适合分布式计算场景。
下载好后,server端分为两个部分,一个是tracker,一个是storage。顾名思义,前者调度管理,负载均衡,后者则是实际的存储节点。两个都能做成集群,以防止单点故障。以前的4.x版本依赖libevent,现在不需要了,只需要libfastcommon。安装方法如下:
1. 下载安装libfastcommon
确认make没有错误后,执行安装,64位系统默认会复制到/usr/lib64下。
这时候需要设置环境变量或者创建软链接
2. 下载安装fastdfs
确认make没有错误后,执行安装,默认会安装到/usr/bin中,并在/etc/fdfs中添加三个配置文件。
3. 修改配置文件
首先将三个文件的名字去掉sample,暂时只修改以下几点,先让fastdfs跑起来,其余参数调优的时候再考虑。
tracker.conf 中修改
storage.conf 中修改
外网访问 出现net.ConnectException: Connection refused: connect
storage的tracker_server地址必须是外网地址,重启FastDFS就好了。
client.conf 中同样要修改
http.tracker_server_port=80
#include http.conf
其它保持默认,注意上面那个是1个#,默认是2个#,去掉1个就行
4. 启动tracker和storage
netstat –lnp –tcp 参看端口是否起来,默认如果显示22122和8090,23000,80说明服务正常起来
5. 检查进程
表示启动ok了,若有错误,可以在/home/fastdfs目录下检查日志。
6. 上传/删除测试
使用自带的fdfs_test来测试,使用格式如下:
使用fdfs_delete_file来删除文件,格式如下:
可以看到,上传ok了,这里会生成两个文件,这是fastdfs的主/从文件特性,以后再介绍。example file url是不能在浏览器中直接打开的,除非配合nginx使用。删除文件需要完整的group_name和remote_filename。
因为FastDFS默认自带的http服务器性能不好, 所以一般建议用外置的apache或者nginx 来解决http下载,以应付大并发的情况 注意nginx扩展模块只支持GET和HEAD模式获取文件,需要开发那边配合修改程序
获取nginx和FastDFS的nginx扩展插件
wget https://sourceforge.net/projects/fastdfs/files/FastDFS%20Nginx%20Module%20Source%20Code/
wget http://nginx.org/
解压并编译安装
备注:如果之前机器上安装了nginx,可以单独安装fastdfs-nginx-module模块,具体方法请参考:如何单独添加NGINX自定义模块
apt卸载nginx方法
卸载方法
# 删除nginx,保留配置文件
sudo apt-get remove nginx
apt-get install libssl-dev zlib1g-dev libpcre3-dev
tar zvxf nginx-1.9.14.tar.gz
tar zvxf fastdfs-nginx-module_v1.16.tar.gz
cd nginx-1.9.14
./configure --prefix=/usr/local/nginx --with-http_gzip_static_module --add-module=/home/alpha/tools/fastdfs-nginx-module/src
make
sudo make install
如果出现 fastdfs-nginx-module/src/common.c:21:25: fatal error: fdfs_define.h: 没有那个文件或目录
添加链接
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 /home/alpha/tools/FastDFS/conf
cp http.conf /etc/fdfs/
cp mime.types /etc/fdfs/
cp storage_ids.conf /etc/fdfs
修改nginx扩展模块的配置文件
cd ../fastdfs-nginx-module/src
cp mod_fastdfs.conf /etc/fdfs/
vi /etc/fdfs/mod_fastdfs.conf
base_path=/home/fastdfs/logs
#存放log的路径
tracker_server=127.0.0.1:22122
#指定tracker服务器及端口
url_have_group_name = true
#这个很重要,在URL中包含group名称
store_path0=/home/fastdfs/storage
#存储文件的路径
storage_server_port=23000
#与storage的配置端口保持一致
保存后退出
做M00的链接
ln -s /home/fastdfs/storage/data /home/fastdfs/storage/data/M00
修改nginx的配置文件
备注:如果nginx有其他服务器在用,在nginx.conf原有的基础上追加一个下面server的配置即可
vi /usr/local/nginx/conf/nginx.conf
server {
listen 80;
location / {
root /home/fastdfs/storage/data;
index index.html index.htm;
}
location /group1/M00 {
root /home/fastdfs/storage/data;
ngx_fastdfs_module;
}
}
重启相关服务,验证整合是否成功
先重启storage服务:
/etc/init.d/fdfs_storaged start
然后再启动nginx,
注意顺序,否则会报端口占用的错误
/usr/local/nginx/sbin/nginx
查看端口使用情况:
netstat -lnp --tcp
如何让server进程退出运行?
直接kill即可让server进程正常退出,可以使用killall命令,例如:
killall fdfs_trackerd
killall fdfs_storaged
也可以使用如下命令:
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf stop
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf stop
千万不要使用-9参数强杀,否则可能会导致binlog数据丢失的问题。
如何重启server进程?
直接使用:
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
可以在任何storage机器上执行如下命令,查看fastdfs集群状态,如果各个storage状态都为ACTIVE,则搭建成功。
/usr/local/bin/fdfs_monitor /etc/fdfs/storage.conf
关闭tracker(storage)
/usr/local/bin/stop.sh /usr/local/bin/fdfs_trackered(fdfs_storaged) /etc/fdfs/tracker.conf(storage.conf)
或者 killall fdfs_trackered(storaged) -------注意,千万不要使用-9强行杀死进程。否则可能会导致binlog数据丢失的问题。
重启[b]tracker(storage)[/b]
/usr/local/bin/restart.sh /usr/local/bin/fdfs_trackered(fdfs_storaged) /etc/fdfs/tracker.conf(storage.conf)
删除storage
/usr/local/bin/fdfs_monitor /etc/fdfs/storage.conf delete group2 20.12.1.73(删除group2中ip为20.12.1.73的storage)
注意:在配置过程,要注意防火墙的设置。关闭防火墙,或者设置对相关端口例外。
最新的版本可以在这里获取,本文下载的版本是5.08,FastDFS是为互联网应用量身定做的一套分布式文件存储系统,非常适合用来存储用户图片、视频、文档等文件。对于互联网应用,和其他分布式文件系统相比,优势非常明显。具体情况大家可以看相关的介绍文档,包括FastDFS介绍PPT等等。
出于简洁考虑,FastDFS没有对文件做分块存储,因此不太适合分布式计算场景。
下载好后,server端分为两个部分,一个是tracker,一个是storage。顾名思义,前者调度管理,负载均衡,后者则是实际的存储节点。两个都能做成集群,以防止单点故障。以前的4.x版本依赖libevent,现在不需要了,只需要libfastcommon。安装方法如下:
1. 下载安装libfastcommon
git clone https://github.com/happyfish100/libfastcommon.git[/code]cd libfastcommon/./make.sh./make.sh install |
这时候需要设置环境变量或者创建软链接
export LD_LIBRARY_PATH=/usr/lib64/ ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so |
tar xzf FastDFS.tar.gz cd FastDFS/ ./make.sh ./make.sh install |
3. 修改配置文件
首先将三个文件的名字去掉sample,暂时只修改以下几点,先让fastdfs跑起来,其余参数调优的时候再考虑。
tracker.conf 中修改
base_path=/home/fastdfs #用于存放日志。 http.server_port=8090 |
外网访问 出现net.ConnectException: Connection refused: connect
storage的tracker_server地址必须是外网地址,重启FastDFS就好了。
tracker_server=192.168.1.181:22122 #指定tracker服务器地址。 |
base_path=/home/fastdfs #用于存放日志。 store_path0=/home/fastdfs/storage #存放数据,若不设置默认为前面那个。
|
base_path=/home/fastdfs #用于存放日志。 tracker_server=192.168.1.181:22122 #指定tracker服务器地址。 |
#include http.conf
其它保持默认,注意上面那个是1个#,默认是2个#,去掉1个就行
4. 启动tracker和storage
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf /usr/bin/fdfs_storaged /etc/fdfs/storage.conf |
5. 检查进程
root@Ubuntu:~# ps -ef |grep fdfs root 7819 1 0 15:24 ? 00:00:00 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf root 8046 1 0 15:36 ? 00:00:01 fdfs_storaged /etc/fdfs/storage.conf start |
6. 上传/删除测试
使用自带的fdfs_test来测试,使用格式如下:
root@ubuntu:~# fdfs_test /etc/fdfs/client.conf upload /home/steven/01.jpg ... group_name=group1, ip_addr=192.168.1.181, port=23000 storage_upload_by_filename group_name=group1, remote_filename=M00/00/00/wKgdhFTV0ZmAP3AZAPk-Io7D4w8580.jpg ... example file url: http://192.168.1.181/group1/M00/00/00/wKgdhFTV0ZmAP3AZAPk-Io7D4w8580.jpg[/code]storage_upload_slave_by_filenamegroup_name=group1, remote_filename=M00/00/00/wKgdhFTV0ZmAP3AZAPk-Io7D4w8580_big.jpg...example file url: http://192.168.1.181/group1/M00/00/00/wKgdhFTV0ZmAP3AZAPk-Io7D4w8580_big.jpg[/code] |
fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKgdhFTV11uAXgKWAPk-Io7D4w8667.jpg |
因为FastDFS默认自带的http服务器性能不好, 所以一般建议用外置的apache或者nginx 来解决http下载,以应付大并发的情况 注意nginx扩展模块只支持GET和HEAD模式获取文件,需要开发那边配合修改程序
获取nginx和FastDFS的nginx扩展插件
wget https://sourceforge.net/projects/fastdfs/files/FastDFS%20Nginx%20Module%20Source%20Code/
wget http://nginx.org/
解压并编译安装
备注:如果之前机器上安装了nginx,可以单独安装fastdfs-nginx-module模块,具体方法请参考:如何单独添加NGINX自定义模块
apt卸载nginx方法
卸载方法
# 删除nginx,保留配置文件
sudo apt-get remove nginx
apt-get install libssl-dev zlib1g-dev libpcre3-dev
tar zvxf nginx-1.9.14.tar.gz
tar zvxf fastdfs-nginx-module_v1.16.tar.gz
cd nginx-1.9.14
./configure --prefix=/usr/local/nginx --with-http_gzip_static_module --add-module=/home/alpha/tools/fastdfs-nginx-module/src
make
sudo make install
如果出现 fastdfs-nginx-module/src/common.c:21:25: fatal error: fdfs_define.h: 没有那个文件或目录
添加链接
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 /home/alpha/tools/FastDFS/conf
cp http.conf /etc/fdfs/
cp mime.types /etc/fdfs/
cp storage_ids.conf /etc/fdfs
修改nginx扩展模块的配置文件
cd ../fastdfs-nginx-module/src
cp mod_fastdfs.conf /etc/fdfs/
vi /etc/fdfs/mod_fastdfs.conf
base_path=/home/fastdfs/logs
#存放log的路径
tracker_server=127.0.0.1:22122
#指定tracker服务器及端口
url_have_group_name = true
#这个很重要,在URL中包含group名称
store_path0=/home/fastdfs/storage
#存储文件的路径
storage_server_port=23000
#与storage的配置端口保持一致
保存后退出
做M00的链接
ln -s /home/fastdfs/storage/data /home/fastdfs/storage/data/M00
修改nginx的配置文件
备注:如果nginx有其他服务器在用,在nginx.conf原有的基础上追加一个下面server的配置即可
vi /usr/local/nginx/conf/nginx.conf
server {
listen 80;
location / {
root /home/fastdfs/storage/data;
index index.html index.htm;
}
location /group1/M00 {
root /home/fastdfs/storage/data;
ngx_fastdfs_module;
}
}
重启相关服务,验证整合是否成功
先重启storage服务:
/etc/init.d/fdfs_storaged start
然后再启动nginx,
注意顺序,否则会报端口占用的错误
/usr/local/nginx/sbin/nginx
查看端口使用情况:
netstat -lnp --tcp
如何让server进程退出运行?
直接kill即可让server进程正常退出,可以使用killall命令,例如:
killall fdfs_trackerd
killall fdfs_storaged
也可以使用如下命令:
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf stop
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf stop
千万不要使用-9参数强杀,否则可能会导致binlog数据丢失的问题。
如何重启server进程?
直接使用:
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
可以在任何storage机器上执行如下命令,查看fastdfs集群状态,如果各个storage状态都为ACTIVE,则搭建成功。
/usr/local/bin/fdfs_monitor /etc/fdfs/storage.conf
关闭tracker(storage)
/usr/local/bin/stop.sh /usr/local/bin/fdfs_trackered(fdfs_storaged) /etc/fdfs/tracker.conf(storage.conf)
或者 killall fdfs_trackered(storaged) -------注意,千万不要使用-9强行杀死进程。否则可能会导致binlog数据丢失的问题。
重启[b]tracker(storage)[/b]
/usr/local/bin/restart.sh /usr/local/bin/fdfs_trackered(fdfs_storaged) /etc/fdfs/tracker.conf(storage.conf)
删除storage
/usr/local/bin/fdfs_monitor /etc/fdfs/storage.conf delete group2 20.12.1.73(删除group2中ip为20.12.1.73的storage)
注意:在配置过程,要注意防火墙的设置。关闭防火墙,或者设置对相关端口例外。
相关文章推荐
- Ubuntu 14.04下部署FastDFS 5.08+Nginx 1.13.0
- Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署最简记录(精简自uwsgi官网教程)
- Ubuntu 14.04 上使用 Nginx 部署 Laravel 4.2
- Ubuntu14.04 上使用 Nginx 部署 Flask 应用
- Ubuntu下FastDFS+Nginx部署
- nginx1.11.7 fastdfs5.08 Ubuntu16.04负载配置
- Ubuntu 14.04 上使用 Nginx 部署 Laravel
- Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
- Ubuntu 14.04 VPS部署个人博客(nginx+php+MariaDB+phpMyAdmin+WordPress)
- ubuntu 14.04部署python项目(Nginx+uwsgi+django)
- 阿里云ECS ubuntu 14.04部署python3+django(1.8.2)+uwsgi+nginx
- 使用passenger+nginx在Ubuntu14.04服务器上部署rails应用填坑记
- Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
- Ubuntu下Nginx做负载实现高性能WEB服务器3—PHP网站的部署和时间同步
- Canonical解决了一个Ubuntu 14.04 LTS中的nginx漏洞
- Ubuntu 12.04 下部署 Nginx+uWSGI+Flask
- Ubuntu 14.04---Nginx+uWsgi+Django+Python+MongoDB+m
- 自己动手制作liveusb,并实现自动部署ubuntu14.04
- Ubuntu 12.04 Server LTS安装部署Nginx+MySQL+Ruby1.9.3+Rails3.2