服务器环境搭建流程
Centos7 -> Docker -> vsftp-> openresty(nginx)
Centos7和Docker安装跳过
安装 vsftpd
yum -y install vsftpd
添加 vsftpd 用户
useradd ftpuser
设置 vsftpd密码
passwd ftpuser
在ftpuser用户目录下创建一个docker中nginx挂载的目录
mkdir /home/ftpuser/html
配置 vsftpd,禁止匿名用户登录,配置文件目录vsftpd.conf
local_root=/home/ftpuser/html
nonymous_enable=NO
修改目录权限
chmod 777 html
创建 nginx本地挂载目录
mkdir ~/nginx
mkdir ~/nginx/logs
mkdir ~/nginx/conf
服务器搭建
vim ~/nginx/conf/nginx.conf
文件配置信息如下
worker_processes 1;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
server{
listen 80;
server_name localhost;
location / {
root html;
index index.html index.html;
}
}
}
cd ~
注意:下面过程下载慢可以修改镜像
vim /etc/docker/daemon.json
将下面内容粘贴进去然后可以进行重启
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
docker 安装 openresty(nginx),并将nginx容器内目录挂载到本地
docker run -d --name nginx -p 80:80 -v $PWD/conf/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf:ro -v $PWD/logs:/usr/local/openresty/nginx/logs -v $PWD/html:/usr/local/openresty/nginx/html openresty/openresty
访问nginx 80端口
出现403错误 因为我们把html文件挂载到本地目录,而本地目录并未含有任何页面。
Java文件上传测试
导入依赖:
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.6</version>
</dependency>
Java FTP文件上传
@Test
public void testFtpUpload(){
FTPClient ftpClient = new FTPClient();
FileInputStream fis = null;
try {
ftpClient.connect("10.0.0.3");
ftpClient.login("ftpuser", "123456");
File srcFile = new File("C:\\Users\\Administrator\\Desktop\\图片素材\\111.jpg");
fis = new FileInputStream(srcFile);
//设置上传目录
ftpClient.setBufferSize(1024);
ftpClient.setControlEncoding("GBK");
//设置文件类型(二进制)
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
ftpClient.storeFile("333.jpg", fis);
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("FTP客户端出错!", e);
} finally {
IOUtils.closeQuietly(fis);
try {
ftpClient.disconnect();
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("关闭FTP连接发生异常!", e);
}
}