ftp服务器通常提供文件上传和,基于FTPClient的文件上传至Nginx服务器
一、Nginx做图片服务器
通常一个小型系统的图片,保存在应用服务器的项目目录下即可,但是对于一个中型规模的系统,就需要使用独立的图片服务器,单独分离图片的访问。目的是一方面缓解应用服务器的访问压力,另一方面,一旦服务器做了集群配置,那么图片资源的同步和共享就是问题。
1.主要特点
1. 分担web服务器的访问压力,对于图片的访问压力转移到图片服务器中。
2. 图片服务器能够专门针对图片访问进行优化。【有专门的换存方案,提高响应速度。】
3. 提高扩展性,图片文件的量急剧增长【社交网站,门户网站,电商网站等。】
4. 解决集群架构中,图片文件数据不一致的问题。
2. Nginx安装
1. 安装gcc
yum -y install gcc gcc-c++
2. 安装openssl
yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel
3. 安装Nginx
① 解压
tar zxvf nginx-x.x.x.tar.gz
② 执行configure文件
./configure
③ 编译
make
④ 编译安装
make install
4. 使用
a) 启动
执行 /usr/local/nginx/sbin/nginx 命令,默认端口号是80
./nginx -c /usr/work/nginx/conf/nginx.conf
b) 停止
./nginx -s stop
c) 重新加载配置并生效
./nginx -s reload
5. 配置Nginx服务器中默认的服务器位置:
修改nginx.conf配置文件。
3. 安装FTP服务
1. 安装vsftpd服务
yum -y install vsftpd
2. 添加一个访问ftp的用户
useradd baizhi --- 添加用户百知ftp
passwd baizhi --- 修改密码
3. 防火墙放行21端口,ftp的默认访问端口
--添加开放端口
/sbin/iptables -I INPUT -p tcp --dport 21 -j ACCEPT
/etc/init.d/iptables save --保存配置
service iptables restart --重启防火墙服务
4. 设置ftp访问
1. 启动ftp
/etc/init.d/vsftpd start
2. 关闭ftp
/etc/init.d/vsftpd stop
3. 关闭匿名访问
编vsftp的配置文件:/etc/vsftpd/vsftpd.conf
1. 使用主动模式,不要使用被动模式连接。
2. 设置FTP开机启动
chkconfig vsftpd on
4. 整合FTP和Nginx
1. 将Nginx的location目录,与FTP的用户关联起来
1. 将ftp用户目录的读权限开放755权限
chmod -R 755 /home/baizhi
测试通过Nginx服务器访问服务器端资源
5. 使用Java代码的FTP功能上传文件
1. FTPClinet简介
a) 是apache提供的commons-net包中的一个API,作用是使用FTP协议远程操作服务器端文件资源。
2. FTPClient的资源maven坐标
API介绍
//1. 准备本地文件输入流
FileInputStream in = new FileInputStream(new File("D:/text1.xls"));
//2. 创建FTP客户端工具对象。
FTPClient ftp = new FTPClient();
//3. ftp客户端连接远程FTP服务器,url代表FTP服务器的ip地址,port代表ftp端口号,默认是21。
ftp.connect("192.168.137.137", 21);
//4. 登陆FTP服务器,username和password分别是FTP服务器(CentOS系统)的用户名和密码。
ftp.login("baizhi", "admins");
//5. 获得当前客户端对于FTP服务器的状态吗
int replyCode = ftp.getReplyCode();
//6. 判断当前的状态吗是否可以使用FTP服务器。[官方文档上要求写上]
if (!FTPReply.isPositiveCompletion(replyCode)) {
ftp.disconnect();
System.out.println("FTP服务器不可用异常");
}
//7. 设置缓冲大小为1k
ftp.setBufferSize(1024);
//8. 设置文件类型为二进制文件
ftp.setFileType(FTP.BINARY_FILE_TYPE);
//9. 切换当前操作的目录
ftp.changeWorkingDirectory("www/baizhi/images/");
//10. 将in输入流中的文件保存在FTP服务器的切换后的目录中,并且文件名为filename。
ftp.storeFile("text.xls", in);//
//11. 关闭输入流
in.close();
//12. 退出登陆
ftp.logout();
//13. 断开ftp客户端连接。
if (ftp.isConnected()) {
ftp.disconnect();
}
2. 整合SpringMVC
a) 需要将SpringMVC接受文件的MultipartFile对象,转化成输入流。
multipartFile.getInputStream();然后使用ftp.storeFile(文件名,上传文件的输入流)即可完成上传。
ftp服务器通常提供文件上传和,基于FTPClient的文件上传至Nginx服务器相关推荐
- antd upload手动上传_基于MVVCTP5的文件上传
现如今在市面上常见的web开发理念一般是两种,一种是MVC格式的,比较传统,而项目较大的开发,一般由团队完成,而MVC格式就显得有些不够合理 .于是 ,在这种情况下诞生了另外一种开发理念,我们叫MVV ...
- 将文件上传至ftp服务器,FTP文件上传工具类,将文件上传至服务器指定目录
将文件上传至ftp服务器,传入File对象,将文件上传至ftp服务器 需要配置修改的点: 1. 服务器ip端口(服务器ip 端口22/21). 2. 服务器账号密码(服务器登录用户名密码). 3. 上 ...
- html标签手册 360doc,基于AJAX的文件上传控件NetAdvantage for jQuery
NetAdvantage for jQuery 是一款全新的轻量级.高性能的jQuery控件,包含了在线的Video播放控件,基于AJAX的文件上传控件,快速且强大的表格控件,以及创建和编辑Word. ...
- springboot 上传文件_基于SpringBoot的文件上传
在实际的企业开发中,文件上传是最常见的功能之一,SpringBoot集成了SpringMVC常用的功能,当然也包含了文 件上传的功能,实现起来没有太多的区别. 下面我们来讲解一下,使用SpringBo ...
- php dw文件上传下载,使用PHP实现文件上传
这里使用PHP实现文件的上传,由在浏览器这边选择文件,上传到服务器.其中,在上传文件中,考虑到对上传文件大小的限制.类型限制等问题.(当然可以根据我们需要修改对上传的文件的限制,而一般而言php自身也 ...
- lumen 支持多文件上传及php 原生多文件上传
1.webform (注意:name后面一定要加[]号) <form method="post" enctype="multipart/form-data" ...
- 基于springboot的文件上传功能的实现
基于springboot的文件上传功能的实现: 前言:本人是刚学习java后端不久,所以通过记录一下平时所学知识,方便日后的复习,如果有出错的地方,还望包含. 1.使用的工具是idea,和spring ...
- jquery 文件上传插件_10个jQuery文件上传插件
jquery 文件上传插件 这篇热门文章于2016年7月更新,以反映文件上传插件的当前状态. 有关旧文章的评论已删除. 使用Ajax实施文件上传可能非常困难,特别是如果您需要拖放支持,图像预览或进度条 ...
- themyleaf 图片上传_javaEE --springboot #实现图片上传和回显 #单文件上传 #多文件上传 #ajax异步文件上传 (非常详细,从创建项目开始)...
实现文件上传和回显 1.新建一个SpringBoot项目,选择 Spring Web 和 thymeleaf 依赖 .pow.xml文件下的依赖如下 2.根据下图,创建如下文件 3.直接上代码 配置文 ...
最新文章
- C++调用matlab char16_t 重复定义
- Eclipse 3.7 3.x SWT/Jface 开发环境搭建
- C语言 | 编程实现3
- java入门从哪下手_java新手0基础如何最快速的入门
- vim 编译 Python 代码提示配置
- [css] 在固定宽度的div下,怎么让字体自适应大小,不超出宽度,也不要换行
- 阿里沈询:分布式事务原理与实践
- 关于qq创始人----马化腾的一些琐事
- mysql binlog DDL_mysql一个事务中有DDL语句的binlog情况
- 学习的第一推动力(很好)
- R74800H和i79750h参数对比哪个好?
- 广东迅视资管 “亦庄智造”填补国内高速棒材技术空白
- Python学习:输出99乘法口诀表
- 架构--网络关键指标公式
- 声网实时连麦互动助力CCtalk万人互动课堂
- 使用css做一个简单的车轮滚滚效果
- 用Python做了一个猫狗识别系统~
- java创建exe程序快捷方式
- 愤怒的老王,每天都想暗杀一个同事...
- android系统应用的平台化开发