服務器環境搭建流程
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);
}
}