FastDFS搭建单机图片服务器(二)
防丢失转载:https://blog.csdn.net/MissEel/article/details/80856194
根据
分布式文件系统 - FastDFS 在 CentOS 下配置安装部署
和
分布式文件系统 - FastDFS 配置 Nginx 模块及上传测试
一步一步搭建的,但还是碰到了版本太低,导致安装报错的问题。
费时间解决了问题之后,我将这个步骤和对应的版本记录下载,有需要的小伙伴可以参考一下。
用这个步骤,我已经在一部本机的虚拟机和一部阿里云服务器上分别搭建过,并且能上传和下载图片。
搭建单机服务器的还是比较简单的。我分成了两篇来进行记录。
FastDFS搭建单机图片服务器(一)
主要是下载、安装和配置FastDFS相关的组件,实现图片的上传。
FastDFS搭建单机图片服务器(二)
主要是下载、安装和配置nginx相关的组件,实现图片的下载。
接着上一篇(一)来继续安装nginx的步骤。
一、安装nginx需要准备的环境(CentOS)
1、安装gcc
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:
yum install gcc-c++
2、 安装PCRE pcre-devel
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:
yum install -y pcre pcre-devel
3、安装zlib
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。
yum install -y zlib zlib-devel
4、安装OpenSSL
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。
yum install -y openssl openssl-devel
参考资料:
从零开始学 Java - CentOS 下安装 Nginx
由于ubuntu系统对yum不友好,下载方式不一样。
一、安装nginx需要准备的环境(Ubuntu)
参考资料:ubuntu下安装nginx时依赖库zlib,pcre,openssl安装方法
1、安装gcc
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:
查看是否已经下载:
dpkg -l | grep gcc
如果没有则下载安装
sudo apt-get install g++-5
2、 安装PCRE pcre-devel
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:
sudo apt-get install openssl libssl-dev
3、安装zlib
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。
查看是否安装
dpkg -l | grep zlib
如果没有则下载安装
sudo apt-get install zlib1g-dev
4、安装OpenSSL
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。
sudo apt-get install openssl libssl-dev
二、下载fastdfs-nginx-module
1、下载
cd /usr/local
防止同名压缩包被覆盖,重命名一下已下载的libfastcommon安装包master.zip,
mv master.zip libfastcommon.zip
wget -c https://github.com/happyfish100/fastdfs-nginx-module/archive/master.zip
2、解压
unzip master.zip
三、下载Nginx
mkdir /usr/local/nginx
cd /usr/local/nginx
1、下载
wget -c https://nginx.org/download/nginx-1.10.1.tar.gz
2、解压nginx-1.10.1.tar.gz
tar -zxvf nginx-1.10.1.tar.gz
3、安装nginx
加入fastdfs-nginx-module模块。这是和普通 Nginx 安装不一样的地方,因为加载了模块。
cd /usr/local/nginx/nginx-1.10.1/
./configure --add-module=../../fastdfs-nginx-module-master/src/
如果这一步有报错。有些文件显示not found错误。请确保环境准备好了。
回到第一、安装nginx需要准备的环境,好好确认一下。
如果没有报错,则执行编译
4、编译
make
如果这里报了难以描述的错误
解决办法:
FastDFS版本必须 >= 5.11才可以。否则在使用fastdfs-nginx-module模块整合Nginx时候会出错,编译Nginx的时候会报错。
解决问题再执行make
5、安装
make install
6、查看安装成功的版本
/usr/local/nginx/sbin/nginx -V
四、配置 fastdfs-nginx-module 和 Nginx
1.配置mod-fastdfs.conf,并拷贝到/etc/fdfs文件目录下。
创建nginx存放日志和数据的目录
mkdir /home/fastdfs/fast-nginx
(已创建可以忽略)
2、复制配置文件
cd /usr/local/fastdfs-nginx-module-master/src/
复制配置文件到/etc/fdfs目录下
cp mod_fastdfs.conf /etc/fdfs
3、修改mod_fastdfs.conf配置文件
vi /etc/fdfs/mod_fastdfs.conf
修改mod-fastdfs.conf配置只需要修改三个参数就行了,其他不需要也不建议改变。
tracker_server=192.168.86.131:22122
url_have_group_name=true
store_path0=/home/fastdfs/storage/storage-image
tracker_server=192.168.86.131:22122填本机ip
如果部署的是阿里云ECS服务器,
tracker_server=公网ip:22122
4、修改config文件
修改/usr/local/fastdfs-nginx-module-master/src/config文件:
vi /usr/local/fastdfs-nginx-module-master/src/config
图中标出的路径要和你的libfastcommon的路径保持一致,可能你的路径中有/local/这一层,如果你安装的目录没有/local/这一层,就将local删除。
5、拷贝其他配置文件
接着我们需要把fastdfs-5.11下面的配置中还没有存在/etc/fdfs中的拷贝进去
cd /usr/local/fastdfs-5.11/conf
cp anti-steal.jpg http.conf mime.types /etc/fdfs/
6、配置nginx.conf
cd /usr/local/nginx/conf
vi nginx.conf
编辑内容如下:
location /group1/M00{
ngx_fastdfs_module;
}
1
2
3
7、添加软链接
由于我们配置了group1/M00的访问,我们需要建立一个group1文件夹,并建立M00到data的软链接。
mkdir /home/fastdfs/storage/storage-image/data/group1
ln -s /home/fastdfs/storage/storage-image/data /home/fastdfs/storage/storage-image/data/group1/M00
8、启动 Nginx
/usr/local/nginx/sbin/nginx
五、上传测试
1、配置client.conf
mkdir /home/fastdfs/client
2、修改配置文件
cd /etc/fdfs
重命名
cp client.conf.sample client.conf
vi client.conf
修改一下两个参数即可
base_path=/home/fastdfs/client
tracker_server=192.168.86.131:22122
如果部署的是阿里云ECS服务器,
tracker_server=公网ip:22122
3、上传文件
首先在本地创建一个文件
/home/kiki/test.txt
上传:
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /home/kiki/test.txt
访问url 访问路径
如果访问不了,关闭防火墙
1) 防火墙,重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 防火墙,即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop
3)ubuntu系统下
关闭防火墙:ufw disable
开启防火墙:ufw enable
再次访问就成功了。
FastDFS搭建单机图片服务器(二)的更多相关文章
- FastDFS搭建单机图片服务器(一)
防丢失转载:https://blog.csdn.net/MissEel/article/details/80856194 根据 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署 和 ...
- 第一次项目上Linux服务器(八:——搭建Nginx图片服务器)
一.准备工作 安装Nginx,参考历史博客 二.搭建Nginx图片服务器 1.效果 例如:图片通过xftp服务上传到/home/java/upload目录下,我想通过访问Nginx服务器来访问xftp ...
- 【图片服务器】搭建Nginx图片服务器
一.安装Nginx 二.安装vsftpd 三.开始搭建Nginx图片服务器 1.效果 例如:图片通过ftp服务上传到/home/ftpuser/www/images目录下,我想通过访问Nginx服务器 ...
- 搭建Nginx图片服务器
搭建Nginx图片服务器 Part-I 安装Nginx 安装PCRE 下载 ngx_cache_purge 并解压,用来清除缓存 下载Nginx并解压 cd nginx-1.7.7 编译,--pref ...
- Python中使用Flask、MongoDB搭建简易图片服务器
主要介绍了Python中使用Flask.MongoDB搭建简易图片服务器,本文是一个详细完整的教程,需要的朋友可以参考下 1.前期准备 通过 pip 或 easy_install 安装了 pymong ...
- Windows下搭建Nginx图片服务器
在项目最开始,上传图片的时候,服务器先保存原图再使用ImageMagick生成上传图片缩略图,这种方法有很多缺点,例如生成的缩略图的大小是固定的,不能动态请求指定大小的缩略图. 虽然有非常多的图片云存 ...
- 转:Linux下使用Nginx搭建简单图片服务器
最近经常有人问图片上传怎么做,有哪些方案做比较好,也看到过有关于上传图片的做法,但是都不是最好的,今天再这里简单讲一下Nginx实现上传图片以及图片服务器的大致理念. 如果是个人项目或者企业小项目,仅 ...
- 基于Docker搭建Nginx图片服务器
前言 一般开发中,都会把图片上传到一个目录,然后将目录和文件名拼接存储在数据库中,但是,这种方法如果没弄好的话可能有一定的缺陷. 若项目搬迁,即时这台服务器本身还在用,存放在服务器的跟项目相关的图片也 ...
- 搭建Nginx图片服务器(Linux)
知识点: 在Linux系统上安装Nginx服务器,配置图片访问路径 通过ftp上传图片到,指定路径,通过浏览器访问指定路径中的图片 参考博客:http://blog.csdn.net/maoyuanm ...
随机推荐
- [易学易懂系列|golang语言|零基础|快速入门|(三)]
接下来,我们主要讲讲package. 先列举下go的package的一些核心特性: 1.go的package不局限于一个文件,组成一个package的多个文件,编译后实际上和一个文件类似,组成包的不同 ...
- GUI学习之二十四——QDialog学习总结
今天学习对话框输入控件的基类(QDialog). 一.描述 是对话类窗口(字体框.颜色选择.文件选择框等)的基类. 对话框窗口是顶级窗口(就是说不包含于哪个父类的显示界面里),主要用于短期任务和与用户 ...
- RestTemplate 超级严重BUG之 restTemplate.getForEntity对于下载文件的地址请求 header不起作用
错误下载:RestTemplate restTemplate=new RestTemplate();HttpHeaders httpHeaders=new HttpHeaders();httpHead ...
- httprunner
https://cn.httprunner.org/quickstart/ httprunner官方 https://testerhome.com/opensource_projects/httpru ...
- Flutter-發送短信驗證碼
import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; ...
- oracle数据库架构
3.1 Client/Server Oracle 采取的是 Client/Server 架构. oracle 服务端分为两部分: Instance 实例 Database 数据库 实例, 又称为数据库 ...
- CSS3——PC以及移动端页面适配方法(流体布局)
流体布局:使用百分比来设置元素的宽度,元素的高度按照实际值. 但是流体布局中存在一个边框的问题,元素的边线无法计入百分比. 两种解决办法: 1)width:calc(20% - 4px) 2)widt ...
- Node.js 版本管理工具——nvm
日常项目开发中,有些项目可能基于node V10 或者 V8 不同的版本: 如果我们手动安装卸载node,这样是不友好. 先放上作者的博客地址 : https://www.cnblogs.com/g ...
- js自执行函数前加个分号是什么意思?
1.(function(){alert("1")})()(function(){alert("2")})()报错 2.(function(){alert(&qu ...
- mysql PRIMARY KEY约束 语法
mysql PRIMARY KEY约束 语法 作用:PRIMARY KEY 约束唯一标识数据库表中的每条记录. 环形直线电机 说明:主键必须包含唯一的值.主键列不能包含 NULL 值.每个表都应该有一 ...