共计 1705 个字符,预计需要花费 5 分钟才能阅读完成。
关于文件服务器很多实现方法,比如采用阿里的分布式文件系统 FastDFS,以及自己内部搭建 FTP 服务器,这里记录一下关于 Nginx 搭建 FTP 文件系统流程。
ftp 服务器搭建的步骤网上也是很多,这里贴一下具体流程,方便以后参考:
1.yum -y install vsftpd
2.useradd ftpuser(添加用户)
3.passwd ftpuser (对 ftpuser 添加密码,需要重复输入 2 次,最好是 8 位密码)
上面的 3 个步骤是安装 FTP 和创建用户和设置密码。
默认的 yum 安装 ftp 的路径是在 /etc/vsftpd,这时候通过上面创建的 用户从 FTP 登陆后, 进入 home 目录就可以查看到 ftpuser 文件夹
上图这里有个小细节就是在 Linux 中,创建一个文件时,该文件的拥有者都是创建该文件的用户,因为我是创建了一个 ftpuser 用户,所以这个文件夹所有者是 ftpuser。
这时候我们想要通过浏览器访问图片的话需要通过 ftp://username:password@ip 这种方式来获取图片,但是这个很不安全,因为把用户名, 密码,ip 都暴漏出去了, 所以这时候需要一个代理来访问 FTP 下面的图片, 这时候就可以通过 nginx 的代理机制来实现我们外部对 ftp 文件的访问,主要配置很简单,就是修改 nginx.conf 的配置文件,如下图:
上面红色框框是我存放图片的路径, 重启 nginx 访问图片出现了 403(禁止访问),后来排查了 ftp 的问题、检查 nginx 的配置, 更改文件夹的所有者 ftpuser 变为 root 还是一直 403; 最后才发现 nginx.conf 顶部有个 user 被注释了,后来尝试打开后再次访问,能正常看到图片,所以问题就是这里,默认的是 nobody, 没有权限组,需要打开注释并赋给有权限的用户,修改后如下:
重启 nginx 再次刷新页面,可以发现图片加载出来了, 之前出现的 403 权限问题也就解决了。
总结:尽管通过这种方式能实现分布式文件存储,但也存在弊端,就是 FTP 很容易被入侵,而且小型的网站使用 FTP 作为文件服务器是没问题的,但是项目访问量持续增加的话,必要考虑文件服务器的扩展性与高可用,目前成熟的文件服务器也有很多,例如 FastDFS, 可以快速的进行线性扩容。
FTP 协议详解与 vsftpd 在 Linux 上的安装配置 http://www.linuxidc.com/Linux/2016-09/134831.htm
玩转 vsftpd 服务器的四大高级配置:http://www.linuxidc.com/Linux/2013-09/90565.htm
vsFTPd 配置教程:http://www.linuxidc.com/Linux/2013-09/90562.htm
Ubuntu 实用简单的 FTP 架设 http://www.linuxidc.com/Linux/2012-02/55346.htm
Ubuntu 上架设 FTP 服务器和 Apache 服务器 http://www.linuxidc.com/Linux/2011-04/35295.htm
Ubuntu 13.04 安装 LAMP\vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm
RHEL6 平台下 SeLinux 和 vsftpd 的匿名上传的简单案例 http://www.linuxidc.com/Linux/2013-04/82300.htm
Linux 系统 vsftpd 源码安装 http://www.linuxidc.com/Linux/2013-03/81475.htm
openSUSE 13.2/13.1 下安装配置 FTP 服务器 vsftpd http://www.linuxidc.com/Linux/2014-12/110070.htm
CentOS7 基于虚拟用户的 vsftpd http://www.linuxidc.com/Linux/2016-11/137150.htm
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-03/141484.htm