项目比较老旧,自己修改了一下,跑在mac上,用的IDEA和centos7 64位系统,记录下来,以后上传图片都可以用。
使用场景:图片上传
如果我们把图片全都放在上传到webapp路径下显然是一种非常low的行为,当项目逐渐增大,可能会布置到多个tomcat上,这时对于图片这种资源的处理最好就是集中存放在一起,便于存储和访问。
FastDFS
FastDFS是一个开源的轻量级分布式文件系统,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等。
FastDFS主要的有两个角色:tracker和storage。详细的就不在介绍了,网上有很多资料,我们就来布置一个最简单的一个tracker和一个storage的dfs。
工具
mac系统
- helm是一个可以修改mac hosts文件的工具
- virtualbox centos7 虚拟机
- FileZilla 是mac上的一个ftp服务器,可以方便的操作虚拟机,对于linux指令不是很熟悉的同学可以使用,但不要依赖,指令才是王道
安装好虚拟机 大约就是这个样子
先别启动,点设置看一下网络连接,应该是这个样子的,然后在开启虚拟机
为了方便,可以使用root的账号密码,这样可以方便很多。
输入ip addr 查看IP地址,如果是安装的最小版的cent,应该是没有ifconf这些指令的,可以使用yum install net-tools 前提是你的电脑能上网
可以发现是没有ipv4的地址的,没有地址外网就无法访问。但是这时是可以下载东西的,我们先现在一些必要的依赖包
yum install vim(个人习惯,可以不装)
yum -y install libevent
yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
yum install zip unzip
最后我们要访问服务器 首先要通过防火墙,最简单的方法直接关闭防火墙,暴露所有接口,当然也可以选择暴露你要用的接口,这里我们选择最简单的,直接关闭,先查看一下是不是开启了。
firewall-cmd --state #查看默认防火墙状态
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
最后在查看一下状态是否确定关闭了,简单暴力,当然仅限于懒人开发,真实环境肯定不能这么做
准备妥当之后关闭虚拟机,打开设置->网络
修改为桥接网卡在开机,输入ip addr
哒哒,IP地址出来了,没有ip地址的虚拟机就像没有梦想的U盘!
安装程序
这时我们安装Filezilla这个软件
像这样一顿操作以后,就可以看到虚拟机下的文件路径了,这里我们需要FastDFS和nginx的压缩包
nginx-1.8可以自行下载,我提供了fastdfs所需要的包,这些不太好找。点这里密码uc1p
全部放在/usr/local/路径下面。
安装libfastcommonV1.0.7工具包
- 解压缩
- ./make.sh
- ./make.sh install
安装Tracker
- 解压缩FastDFS_V5.05
- ./make.sh
- ./make.sh install
这时在你解压缩的路径下会有一个fastdfs-5.05的文件夹
cd /fastdfs-5.05/conf,拷贝这里的所有配置文件
cp * /etc/fdfs,去查看一下
cd /etc/fdfs
vi tracker.conf
这时我们修改一下配置文件
回到之前的解压目录下,将tracker.conf做同样的修改
cd /usr/local/fastdfs-5.05/conf
vi tracker.conf
启动tracker
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
可以通过 ps aux|grep tracker 查看进程是否启动
配置Storage
cd /usr/local/fastdfs-5.05/conf
vi storage.conf
到/etc/fdfs下,将storage.conf文件做同样的修改
cd /etc/fdfs
vi storage.conf
启动storage服务
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
测试
vi /etc/fdfs/client.conf
cd /etc/fdfs
/usr/bin/fdfs_test /etc/fdfs/client.conf upload anti-steal.jpg
如果成功,这时会将会看到一串url地址,这就是图片在服务器上的存放地址,就表示成功啦
既然是一串url,我们就需要一个nginx为我们解析请求
安装Nginx
解压fastdfs-nginx-module_v1.16.tar.gz
解压nginx-1.8
vi fastdfs-nginx-module/src/config 把其中的local去掉
cd /nginx-1.8.0
*./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/usr/local/fastdfs-nginx-module/src* 这里就是刚刚你配置的路径
make
make install
将fastdfs-nginx-module/src/mod_fastdfs.conf文件复制到/etc/fdfs目录下,并修改
去nginx中新建一个server
cd /usr/local/nginx/conf
vi nginx.conf
添加如下代码并保存
server {
listen : 80
servername : 自己的ip
localtion /group1/M00{
ngx_fastdfs_module;
}
}
cd /usr/local/nginx/sbin
./nginx
启动服务器就好啦
测试
打开本机的浏览器,输入虚拟机的IP地址
如果看到Nginx的欢迎页说明就配置成功啦
今天太晚了,明天写一写在java端maven配置和具体的上传操作代码还有一些后续的小trick
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。