图片服务器的实现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();
    }

你可能感兴趣的:(IT技术分享,nginx,vsftpd)