ubuntu16.06+vsftpd+nginx搭建图片服务器

安装vsftpd

注:以下指令都在root账户下操作

# apt安装vsftpd
apt-get install vsftpd

#启动vsftpd
service vsftpd start

#新建用户作为专门访问ftp的账户
mkdir /home/uftp
useradd -d /home/uftp -s /bin/bash uftp

#将/home/uftp所有者赋为uftp
chown uftp:uftp /home/uftp

#新建/etc/vsftpd.user_list,用于存放ftp用户
vim /etc/vsftpd.user_list

#向里面添加`uftp`,如下面图示

#编辑vsftpd配置文件
 做如下修改: 
  打开注释 write_enable=YES 
  添加信息 userlist_file=/etc/vsftpd.user_list 
  添加信息 userlist_enable=YES 
  添加信息 userlist_deny=NO 

#重启vsftpd
service vsftpd resatrt

vsftpd.user_list

vsftpd.user_list

修改文件上传权限

在默认情况下,我们新上传的文件权限是600,这时候nginx访问就会遇到permission forbidon的问题,这时候需要修改权限

这里主要修改vsftpd.conf文件两个两个参数

# 上传档案权限 755
file_open_mode = 0755

#新建目录与文件权限755
local_unmask=022

如果需要将新建文件权限设置为755,就是用上面的参数配置即可

在Windows上测试

image

几个常用的指令

#linux上的目录
pwd

#获取文件
get file.png

#上传文件
put file.png

permission deny问题

如果报出这个问题,记得检查一下登陆的账户是否拥有/home/uftp的读、写、执行权限

搭建nginx

安装gcc编译器以及nginx依赖库等

#安装gcc
apt-get build-dep gcc
#安装pcre
apt-get install libpcre3 libpcre3-dev
#安装zlib,压缩、解压
apt-get install zlib1g-dev
#安装openssl,安装套接字层密码库
apt-get install openssl libssl-dev

下载、安装nginx

#下载最新nginx
wget http://nginx.org/download/nginx-1.13.12.tar.gz
#解压
tar -zxf nginx-1.13.12.tar.gz
#进入目录
cd nginx-1.13.12
#配置,选择/usr/local/nginx作为安装目录
./configure --prefix=/usr/local/nginx 
#编译
make
#安装
make install
#启动
/usr/local/nginx/sbin/nginx
#常看进程
ps -ef|grep nginx
#其他指令,停止、重启nginx
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx -s reload

访问nginx查看是否启动成功

image

配置文件

打开/usr/local/nginx/conf/nginx.conf,配置图片地址路径。将之前配置的/home/uftp这个地址作为资源路径添加进去。这样,我们就可以通过ftp对这个目录进行上传、下载,通过nginx向外提供http服务

location ~ \.(gif|jpg|jpeg|png|bmp|swf)$ {
            #默认的图片路径,也是ftp上传文件存放的路径,只要后缀是以上的都会到这个路径下搜索
        root /home/uftp;    
}

image

最后,重启nginx

./nginx

测试

如图示,在/home/uftp下面的有一个xx.jpg这个图片

image

我们访问xx.jpg这张图片,结果如下所示

image

注意

被访问的文件一定要有rx权限,否则会报404错误,其实是因为这个文件没有权限读取。可以使用chmod指令修改权限

chmod 754 xx.jpg

小结

安装vsftpd可以进行ftp通信,上传、下载文件,使用nginx作为服务器,对外提供图片访问地址

posted @ 2018-05-09 23:38  小小怪医芙兰  阅读(582)  评论(0编辑  收藏  举报