为什么?
在我们很多业务中都涉及到图片的上传。对于这种业务,我们通常想到的是将上传的图片写入到项目的某个相对路径,然后数据库中保存图片的相对路径地址。但是这种情况会使得我们的项目变得越来越大,也会占用大量的磁盘的IO性能。我们何不尝试使用图片服务器呢?数据库中就可以保存图片的URL,再显示在网页上。这样就可以将图片单独拿出来放在某个服务器上,可以提高性能。
如何搭建呢?
没有自己服务器的可以上七牛云,注册免费10G空间,个人使用完全够用。有服务器的话,就可以自己搭建一个图片服务器了。Alibaba工程师开源的FastDFS是专门为大流量文件服务的,而一个普通的APP网站并不需要这么大的图片服务,因此这里我们使用VSFTP服务器作为图片服务器,VSFTP理论上能支持4000并发,对于一般的图片服务已经足够。下面我们开始搭建VSFTP图片服务器。
安装nginx
此步骤自行百度。(https://blog.csdn.net/qq_37345604/article/details/90034424)安装VSFTP组件
- yum install -y vsftpd
- 查看VSFTP的启用状态:
systemctl status vsftpd.service - 若Active为inactive,因此需要手动启动VSFTP服务
systemctl start vsftpd.service - 添加VSFTP用户以及为其设置密码
useradd ftpuser
passwd ftpuser - 开启SELinux
vim /etc/selinux/config
将SELINUX设置为1,然后使用reboot重启linux - 开启上传文件
ftpd_full_access on
tftp_home_dir on
修改nginx.conf配置文件
添加一个server节点,监听80端口,在server节点下添加一个映射:server { listen 80; server_name localhost; location /ftp/images { alias /home/ftpuser/images/; autoindex on; } }
意思是会将 ip地址/ftp/images的请求映射到服务器的/home/ftpuser/images文件夹上。
重启nginx
进入到nginx安装目录下的sbin目录,执行./nginx -s reload命令。测试