图片服务器的实现nginx+vsftpd
1.搭建vsftpd
yum -y install vsftpd
添加用户ftpuser
useradd ftpuser
添加密码 passwd ftpuser 输入两次密码 修改selinus 执行以下命令查看状态:
getsebool -a | grep ftp
allow_ftpd_anon_write --> off allow_ftpd_full_access --> off allow_ftpd_use_cifs --> off allow_ftpd_use_nfs --> off ftp_home_dir --> off ftpd_connect_db --> off ftpd_use_passive_mode --> off httpd_enable_ftp_server --> off tftp_anon_write --> off
执行上面命令,再返回的结果看到两行都是off,代表,没有开启外网的访问
setsebool -P allow_ftpd_full_access on setsebool -P ftp_home_dir on
注意:ftp客户端工具用主动模式 启动ftp服务 service vsftpd start 重启ftp服务: service vsftpd restart 修改vsftpd的配置文件/etc/vsftpd/vsftpd.conf
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list listen=YES pam_service_name=vsftpd root_local_user=YES chroot_list_enable=YES
创建chroot_list 添加登陆用户的名字 设置开机自启chkconfig vsftpd on 2.nginx搭建 安装gcc PCRE zlib openssl
yum install gcc-c++ yum install -y pcre pcre-devel yum install -y zlib zlib-devel yum install -y openssl openssl-devel
解压nginx到指定文件夹 进入解压目录 cd nginx-1.8.0
./configure --prefix=/usr/local/nginx
编译安装make&&make install 启动 cd /usr/local/nginx /usr/local/nginx/sbin/nginx 启动 (-s stop)关闭 (-s reload)重启 查看状态: ps -ef|grep nginx
修改nginx.conf 配置文件
location / {
root /home/ftpuser/img/;
access_log /home/ftpuser/img/image.log;
index index.html index.htm;
}
更改nginx默认目录后访问出现访问失败的情况 –403错误 解决办法:在配置文件的开头的注释部分改为
user ftpuser;
3.java代码测试
@Test
public void test() throws Exception {
FTPClient client = new FTPClient();
client.connect("192.168.132.147",21);
client.login("ftpuser", "dddd");
FileInputStream inputStream = new FileInputStream(new File("C:\Users\dsd\Desktop\5.jpg"));
//修改文件上传的格式 二进制格式
client.setFileType(FTP.BINARY_FILE_TYPE);
//设置上传的路径
client.changeWorkingDirectory("/home/ftpuser/img");
//第一个参数是服务器端的文档名 自己起
//第二个参数就是输入流
client.storeFile("5.jpg", inputStream);
inputStream.close();
client.logout();
}
