关于文件服务器很多实现方法,比如采用阿里的分布式文件系统FastDFS,以及自己内部搭建FTP服务器,这里记录一下关于nginx搭建FTP文件系统流程。
ftp服务器搭建的步骤网上也是很多,这里贴一下具体流程,方便以后参考:
- yum -y install vsftpd
- useradd ftpuser (添加用户)
- passwd ftpuser (对ftpuser添加密码,需要重复输入2次,最好是8位密码)
默认ftp的路径是在/etc/vsftpd,这时候进入 home目录就可以查看到ftpuser文件夹,通过ftp登录可以进到该目录下,这时候我把图片上传到这个目录下
这里有个小细节就是在Linux中,创建一个文件时,该文件的拥有者都是创建该文件的用户,因为我是创建了一个ftpuser用户,所以这个所有者是ftpuser。
这时候我们是外网无法访问这个图片,除非通过ftp组装密码和用户名的方式来获得图片,但是这个很不安全,所以这时候就可以通过nginx的代理机制来实现我们外部对ftp文件的访问,主要配置很简单,就是修改nginx.conf的配置文件,如下图:
以为这样就OK了,没想到一直出现403,禁止访问,后来排查了ftp的问题,检查过nginx的配置,更改路径的所有者和授权都无作用,最后才发现nginx.conf顶部
有个user被注释了,后来尝试打开后再次访问,能正常看到图片,所以问题就是这里,默认的是nobody,没有权限组,需要打开注释并赋给有权限的用户,修改后如下:
这时候再访问图片服务器路径就能正常get图片:
时间: 2024-10-12 19:49:30