Nginx+Fastdfs
注:
在配置时,使用非root用户配置
fdfs/fdfs
1. 集群部署
1.1. 准备
创建目录:本文档中所有内容安装到/fdfs目录
[fdfs@5861be93b5b0 /]$mkdir -p /fdfs/fastdfs/data /fdfs/nginx/nginx_temp /fdfs/soft && ln -s /fdfs/fastdfs/data /fdfs/fastdfs/data/M00
[fdfs@5861be93b5b0 /]$sudo yum install gcc make gcc-c++ -y
上传文件:
上传【Nginx+Fastdfs.zip】包到安装目录/fdfs/soft,执行解压到soft目录
[fdfs@5861be93b5b0 /]$cd /fdfs/soft && unzip Nginx+Fastdfs.zip
1.2. libfastcommon , fastdfs
1.2.1安装libfastcommon
[fdfs@5861be93b5b0 /]$cd /fdfs/soft && tar -xvf libfastcommon.tar&&cd libfastcommon
[fdfs@5861be93b5b0 /]$./make.sh && ./make.sh install
1.2.2安装 fastdfs
[fdfs@5861be93b5b0 /]$cd /fdfs/soft && tar -xvf FastDFS_v5.08.tar.gz && cd FastDFS
1.2.3拷贝配置文件到/fdfs/fastdfs/config
[fdfs@5861be93b5b0 /]$TARGET_CONF_PATH=/fdfs/fastdfs/config
[fdfs@5861be93b5b0 /]$
cat > ./1.sh <<EOF
TARGET_CONF_PATH=/fdfs/fastdfs/config
if [ ! -d \$TARGET_CONF_PATH ]; then
mkdir -p \$TARGET_CONF_PATHfi
cp -f conf/tracker.conf \$TARGET_CONF_PATH
cp -f conf/storage.conf \$TARGET_CONF_PATH
cp -f conf/client.conf \$TARGET_CONF_PATH
cp -f conf/http.conf \$TARGET_CONF_PATH
cp -f conf/mime.types \$TARGET_CONF_PATHEOF
[fdfs@5861be93b5b0 /]$sh 1.sh&&rm -f 1.sh
1.2.4修改make文件配置路径为/fdfs/fastdfs
[fdfs@5861be93b5b0 /]$sed -i 's#$DESTDIR/usr$#/fdfs/fastdfs#' make.sh
[fdfs@5861be93b5b0 /]$sed -i 's#$DESTDIR/etc/fdfs#/fdfs/fastdfs/config#' make.sh
[fdfs@5861be93b5b0 /]$sed -i 's#$DESTDIR/etc/init.d#/fdfs/fastdfs/init.d#' make.sh
1.2.5安装
[fdfs@5861be93b5b0 /]$./make.sh && ./make.sh install
1.2.2. 验证
进入/fdfs/fastdfs,出现以下5个目录bin、config、data(手工创建)、include、lib、init.d
[fdfs@5861be93b5b0 /]$ll /fdfs/fastdfs
total 312
drwxr-xr-x. 2 root root 4096 Nov 5 06:20 bin
drwxr-xr-x. 2 root root 204 Nov 5 06:46 config
drwxr-xr-x. 2 root root 17 Nov 5 06:17 data
drwxr-xr-x. 3 root root 21 Nov 5 06:20 include
drwxr-xr-x. 2 root root 48 Nov 5 06:20 init.d
drwxr-xr-x. 2 root root 54 Nov 5 06:56 lib64
把libfastcommon 的动态库关联到fdfs
ln -s /usr/lib64/libfastcommon.so /fdfs/fastdfs/lib64/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /fdfs/fastdfs/lib64/libfdfsclient.so /usr/lib64/libfdfsclient.so
ln -s /fdfs/fastdfs/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
ln -s /usr/include/fastcommon/* /fdfs/fastdfs/include/fastdfs/
1.3. nginx
1.3.1. 解压依赖库
[fdfs@5861be93b5b0 /]$cd /fdfs/soft && tar -zxvf pcre-8.42.tar.gz && tar -zxvf zlib-1.2.11.tar.gz && tar -zxvf openssl-1.0.2n.tar.gz
1.3.2. 配置fastdfs-nginx-module模块
[fdfs@5861be93b5b0 /]$cd /fdfs/soft && tar -zxvf fastdfs-nginx-module_v1.16.tar.gz && cd fastdfs-nginx-module/src && cp mod_fastdfs.conf /fdfs/fastdfs/config
修改对应的库路径
sed -i 's#/usr/local/#/fdfs/fastdfs/#g' config
sed -i 's#/etc/fdfs/#/fdfs/fastdfs/config/#' config
sed -i 's#lib#lib64#' config
1.3.3. 安装nginx
[fdfs@5861be93b5b0 /]$cd /fdfs/soft && tar -xvf nginx-1.15.5.tar.gz && cd nginx-1.15.5 && ./configure --prefix=/fdfs/nginx --with-pcre=/fdfs/soft/pcre-8.42 --with-zlib=/fdfs/soft/zlib-1.2.11 --with-openssl=/fdfs/soft/openssl-1.0.2n --add-module=/fdfs/soft/fastdfs-nginx-module/src && make && make install
1.3.4. 验证
进入/nginx/nginx,出现以下5个目录conf、html、logs、nginx_temp(手工创建)、sbin
[root@72fcbfa4c397 libfastcommon-master]$ ll /fdfs/nginx/
total 4
drwxr-xr-x. 2 root root 4096 Dec 20 08:54 conf
drwxr-xr-x. 2 root root 40 Dec 20 08:54 html
drwxr-xr-x. 2 root root 6 Dec 20 08:54 logs
drwxr-xr-x. 2 root root 6 Dec 20 07:33 nginx_temp
drwxr-xr-x. 2 root root 19 Dec 20 08:54 sbin
2. 配置
2.1 dfs的storage
[fdfs@5861be93b5b0 /]$cd /fdfs/fastdfs/config
[fdfs@5861be93b5b0 /]$vi storage.confport=23000 /* storage的端口,默认为23000*/
group_name=group1 /*分组,默认为group1*/
base_path=/fdfs/fastdfs /*放置data和log的目录*/
store_path0=/fdfs/fastdfs /*放置文件的目录*/
tracker_server= 192.168.1.1:22122 /*tracker server的ip和端口,
tracker_server= 192.168.1.2:22122 可以写多个tracker server,每行一个*/http.server_port=8080 /*web server的端口改成8080*/
2.2. dfs的tracker
2.2.1. 修改配置tracker.conf文件
[fdfs@5861be93b5b0 /]$cd /fdfs/fastdfs/config
[fdfs@5861be93b5b0 /]$vi tracker.confport=22122 /* tracker的端口,默认为22122*/
base_path=/fdfs/fastdfs /*放置data和log的目录*/
store_group=group1 /*分组,改为group1*/
reserved_storage_space = 10% /*磁盘小于10%不允许上传*/
http.server_port=8080 /*web server的端口改成8080*/
2.3. 配置nginx的插件
2.3.1. 修改配置mod_fastdfs.conf文件
[fdfs@5861be93b5b0 /]$cp /fdfs/soft/fastdfs-nginx-module/src/mod_fastdfs.conf /fdfs/fastdfs/config
[fdfs@5861be93b5b0 /]$cd /fdfs/fastdfs/config
[fdfs@5861be93b5b0 /]$vi mod_fastdfs.conf
connect_timeout=30network_timeout=60
base_path=/fdfs/fastdfs /*放置log的目录*/
tracker_server= 192.168.1.1:22122 /*tracker server的ip和端口,
tracker_server= 192.168.1.2:22122 可以写多个tracker server,每行一个*/storage_server_port=23000 /* storage的端口*/
group_name=group1 /*分组,默认为group1*/
url_have_group_name=true /*是否在URL中包含group名称*/
store_path0=/fdfs/fastdfs /*放置文件的目录*/
http.need_find_content_type=true
/*增加内容*/
http.mime_types_filename=/fdfs/fastdfs/config/mime.types
http.default_content_type=application/octet-stream
include /fdfs/fastdfs/config/http.conf
2.3.2. 修改配置http.conf文件
[fdfs@5861be93b5b0 /]$cd /fdfs/fastdfs/config
[fdfs@5861be93b5b0 /]$vi http.confhttp.mime_types_filename=/fdfs/fastdfs/config/mime.types
http.anti_steal.token_check_fail=/fdfs/fastdfs/config/anti-steal.jpg
2.3.3. 修改mime.types
[fdfs@5861be93b5b0 /]$cd /fdfs/fastdfs/config
[fdfs@5861be93b5b0 /]$vi mime.types/*增加内容*/
#--add next contents
application/vnd.ms-word.document.macroEnabled.12 docm
application/vnd.openxmlformats docx pptx xlsx
application/vnd.ms-word.template.macroEnabled.12 dotm
application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx
application/vnd.ms-powerpoint.template.macroEnabled.12 potm
application/vnd.openxmlformats-officedocument.presentationml.template potx
application/vnd.ms-powerpoint.addin.macroEnabled.12 ppam
application/vnd.ms-powerpoint.slideshow.macroEnabled.12 ppsm
application/vnd.openxmlformats-officedocument.presentationml.slideshow ppsx
application/vnd.ms-powerpoint.presentation.macroEnabled.12 pptm
application/vnd.ms-excel.addin.macroEnabled.12 xlam
application/vnd.ms-excel.sheet.binary.macroEnabled.12 xlsb
application/vnd.ms-excel.sheet.macroEnabled.12 xlsm
application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx
application/vnd.ms-excel.template.macroEnabled.12 xltm
2.3.4. 修改client.conf
[fdfs@5861be93b5b0 /]$cd /fdfs/fastdfs/config
[fdfs@5861be93b5b0 /]$vi client.confbase_path=/fdfs/fastdfs /*放置文件的目录*/
tracker_server=192.168.1.1:22122 /*tracker server的ip和端口,
tracker_server=192.168.1.2:22122 可以写多个tracker server,每行一个*/http.tracker_server_port=8080
2.4. 配置nginx
2.4.1. 修改配置nginx.conf文件
[fdfs@5861be93b5b0 /]$cd /fdfs/nginx/conf
[fdfs@5861be93b5b0 /]$vi nginx.conf使用以下内容:
worker_processes 4;
error_log logs/error.log;
events {
worker_connections 1024;
use epoll;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8080;
server_name localhost;
access_log logs/access.log;location ~ /group1/M00/* {
root /fdfs/fastdfs/data;
ngx_fastdfs_module;
client_max_body_size 10m;
client_body_temp_path /fdfs/nginx/nginx_temp;
}
}upstream group1 {
server 192.168.1.1:8080 ;
server 192.168.1.2:8080 ;
}server {
listen 8081;
server_name localhost;
location /group1/M00 {
proxy_pass http://group1;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
2.5. Nginx 启动
启动:/fdfs/nginx/sbin/nginx -c /fdfs/nginx/conf/nginx.conf
停止:/fdfs/nginx/sbin/nginx -s stop
重载:/fdfs/nginx/sbin/nginx -s reload
日志:/fdfs/nginx/logs/error.log
/fdfs/nginx/logs/access.log
首次启动可能出现以下错误
/fdfs/nginx/sbin/nginx: error while loading shared libraries: libfastcommon.so: cannot open shared object file: No such file or directory
解决办法:
echo "export LD_LIBRARY_PATH=/fdfs/fastdfs/lib:$LD_LIBRARY_PATH" >> ~/.bash_profile
source ~/.bash_profile
2.6. Tracker命令
启动:/fdfs/fastdfs/bin/fdfs_trackerd /fdfs/fastdfs/config/tracker.conf
停止:killall fdfs_trackerd
日志:/fdfs/fastdfs/logs/trackerd.log
2.7. Storage命令
启动:
/fdfs/fastdfs/bin/fdfs_storaged /fdfs/fastdfs/config/storage.conf
data path: /home/yuqing/fastdfs/data, mkdir sub dir...
mkdir data path: 00 ...
mkdir data path: 01 ...
mkdir data path: 02 ...
停止:killall fdfs_storaged
日志:/fdfs/fastdfs/logs/storaged.log
2.8. 测试
集群测试首次需要两台都启动,否则会报错
2.8.1. 测试分布式文件系统上传图片
上传命令格式:
/fdfs/fastdfs/bin/fdfs_upload_file /fdfs/fastdfs/config/storage.conf 目标文件
[root@72fcbfa4c397 /]# /fdfs/fastdfs/bin/fdfs_upload_file /fdfs/fastdfs/config/storage.conf skr.jpg
group1/M00/00/00/rBEAAlwbcieANq7nAAL_SObQPXc730.jpg
在两台服务器的/fdfs/fastdfs/data/00/00目录可以找到此文件
2.8.2. 测试负载均衡系统访问
以下地址均可访问到内容
http://192.168.4.1:8080/group1/M00/00/00/rBEAAlwbcieANq7nAAL_SObQPXc730.jpg
http://192.168.1.2:8080/group1/M00/00/00/rBEAAlwbcieANq7nAAL_SObQPXc730.jpg
http://192.168.1.1:8081/group1/M00/00/00/rBEAAlwbcieANq7nAAL_SObQPXc730.jpg
http://192.168.1.2:8081/group1/M00/00/00/rBEAAlwbcieANq7nAAL_SObQPXc730.jpg

Nginx+Fastdfs的更多相关文章
- centos7 install nginx+fastdfs
说明:centos7单机部署 nginx fastdfs ## 创建一下目录作为存储数据图片的路径 可以自己定义 mkdir -pv /data/application/{storage,tracke ...
- 基于Nginx+FastDFS搭建图片文件系统
Nginx+fastdfs:https://www.cnblogs.com/chiangchou/p/fastdfs.html#_label0_1 缩略图:https://blog.csdn.net/ ...
- php nginx fastdfs 下载文件重命名
其实fdfs可以传入一个filename参数,指定文件名.. M00/00/00/fwAAAVGMateAafjTAAAABBW-xbM368.txt?filename=test.txt 这样下载时用 ...
- nginx + fastdfs 的开机自启动
虚拟机每次启动之后都要重新启动一下fastdfs 和 nginx服务,比较麻烦,所以增加开机自启动: 编辑 /etc/rc.d/rc.local 文件,增加启动项: 1.编辑文件 vim /etc/r ...
- centos搭建nginx+fastdfs
软件地址 libfastcommon fastDFS fastdfs-nginx-module nginx 创建目录 mkdir -p /fastdfs/tracker mkdir -p /fastd ...
- 阿里云服务器centos7,docker部署mysql+Redis+vue+springboot+Nginx+fastdfs,亲测可用
一.购买云服务器 我是今年双十一期间在阿里云购买的服务器, 简单配置2核_4G_40G_3M,三年用了不到800块,不过当时我记得腾讯云更便宜,个人感觉,阿里的云服务器更加的稳定, 毕竟身经百战, 经 ...
- 第2-3-1章 文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss
目录 文件存储服务 1. 需求背景 2. 核心功能 3. 存储策略 3.1 本地存储 3.2 FastDFS存储 3.3 云存储 3.4 minio 4. 技术设计 文件存储服务 全套代码及资料全部完 ...
- nginx + fastDFS 设置开机自动启动
由于在服务器上有太多的软件 不可能每次启动都要重新启动服务吧(每晚断电...必须重启电脑) vim /etc/rc.d/rc.local 添加下列脚本 /usr/bin/fdfs_trackerd / ...
- linux上安装fastdfs+nginx+ngin-module实践并解决多个异常篇
为什么选择Nginx Nginx 是一个很牛的高性能Web和反向代理服务器, 它具有有很多非常优越的特性: 在高连接并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主 ...
随机推荐
- H - 遥远的糖果 HihoCoder - 1478
给定一个N x M的01矩阵,其中1表示人,0表示糖.对于每一个位置,求出每个位置离糖的最短距离是多少. 矩阵中每个位置与它上下左右相邻的格子距离为1. Input 第一行包含两个整数,N和M. 以下 ...
- iOS开发|从小公司到进大厂,我的进阶学习之旅!
iOS高级进发 OC源码下载地址 苹果开发文档 如何阅读苹果开发文档 GNUstep是GNU计划的项目之一,它将Cocoa的OC库重新开源实现了一遍 源码地址:http://www.gnustep.o ...
- ASP.NET Core WEB API 使用element-ui文件上传组件el-upload执行手动文件文件,并在文件上传后清空文件
前言: 从开始学习Vue到使用element-ui-admin已经有将近快两年的时间了,在之前的开发中使用element-ui上传组件el-upload都是直接使用文件选取后立即选择上传,今天刚好做了 ...
- Linux命令后面加 & 的作用
在命令的后面加一个 & 的作用是,将这个任务放到后台执行.看下面的例子. 输入gedit回车,可以看到,打开了Linux的文本编辑器,但是命令窗口执行不了其他命令了,只有退出文本编辑器才能继续 ...
- SpringMVC(三):转发和重定型
本文是按照狂神说的教学视频学习的笔记,强力推荐,教学深入浅出一遍就懂!b站搜索狂神说或点击下面链接 https://space.bilibili.com/95256449?spm_id_from=33 ...
- Vue生成分享海报(含二维码)
本文已同步到专业技术网站 www.sufaith.com, 该网站专注于前后端开发技术与经验分享, 包含Web开发.Nodejs.Python.Linux.IT资讯等板块. 功能需求: 海报有1张背景 ...
- Struts2-学习笔记系列(2)-常量配置和实现action
1.常量配置 在struts配置文件中,下面突出部分,就是常量配置. <constant name="struts.enable.DynamicMethodInvocation&quo ...
- Pod容器共享Volume
同一个Pod中的多个容器能够共享Pod级别的存储卷Volume.Volume可以被定义为各种类型,多个容器各自进行挂载操作,将一个Volume挂载为容器内部需要的目录,如图 在下面的例子中,在Pod内 ...
- Hibernate框架 jar包介绍
一直使用my eclipse集成的Hibernate来学习.最近在写hibernate的日记,写到搭建hibernate框架的时候才发现自己对hibernate的内容还是不了解,决定自己手动搭建一下. ...
- 跨平台开源密码管理器 KeePassXC
简介 KeePassXC 是一个开源的跨平台密码管理器.基于 KeePass 二次开发. KeePassXC 可以安全地在本地存储您的密码,配合浏览器插件KeePassXC-Browser可辅助登录. ...