【原】Nginx搭建FTP服务器的细节问题
关于文件服务器很多实现方法,比如采用阿里的分布式文件系统FastDFS,以及自己内部搭建FTP服务器,这里记录一下关于nginx搭建FTP文件系统流程。
ftp服务器搭建的步骤网上也是很多,这里贴一下具体流程,方便以后参考:
- yum -y install vsftpd
- useradd ftpuser (添加用户)
- 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,可以快速的进行线性扩容。
【原】Nginx搭建FTP服务器的细节问题的更多相关文章
- Nginx与ftp服务器
使用Nginx搭建ftp服务器
- CentOS 下搭建FTP服务器
vsftpd是Linux下比较著名的FTP服务器,搭建FTP服务器当然首选这个.本文介绍了在CentOS 6 4下安装vsftpd.配置虚拟用户登录FTP的过程.正 vsftpd是Linux下比较著名 ...
- Nginx 搭建图片服务器
Nginx 搭建图片服务器 本章内容通过Nginx 和 FTP 搭建图片服务器.在学习本章内容前,请确保您的Linux 系统已经安装了Nginx和Vsftpd. Nginx 安装:http://www ...
- linux系统搭建ftp服务器及创建用户使用
linux 系统下搭建ftp服务器 ftp是什么 FTP是 File Transfer Protocol 文件传输协议的英文名称,用于在Internet上控制文件的双向传输. 同时它也是一个应用程序. ...
- Nginx,Nginx 搭建图片服务器
Nginx Nginx 概述 反向代理 工作流程 优点 1:保护了真实的web服务器,保证了web服务器的资源安全 2:节约了有限的IP地址资源 3:减少WEB服务器压力,提高响应速度 4:其他优点 ...
- 在Ubuntu Server 14.04中搭建FTP服务器(VMWare)
自己搭建ftp服务器,方便主机与虚拟机中的Ubuntu传输文件. 选用的ftp软件为vsftpd. 1.命令行: sudo apt-get install vsftpd 2.安装完配置: vsftpd ...
- 超简单——自己搭建ftp服务器
自己搭建ftp服务器 之所以没选择serv-u,一是因为收费,虽说网上有破解版,但是使用过程中发现破解版很不稳定,经常异常死掉,随后改选用免费的filezilla. 1软件获取 从百度搜索 FileZ ...
- Linux 搭建FTP服务器
介绍 本章主要介绍在Linux中搭建FTP服务器的过程,需要掌握的要点是配置文件的合理配置. 知识点 在linux中使用的FTP是vsftp FTP可以有三种登入方式分别是: 匿名登录方式:不需要用户 ...
- RedHat6.2搭建FTP服务器
我的环境: A:Red Hat Enterprise 6.2 IP:192.168.16.12 此机作测试端 B:Red Hat Enterprise 6.2 IP:192.168.16.13 此机做 ...
随机推荐
- LinkedBlockingQueue源码解析(3)
此文已由作者赵计刚授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 4.3.public E take() throws InterruptedException 原理: 将队 ...
- Android代码编译出现的错误
一.decoupled apps failed 解耦应用程序失败 2.每次编译时候一定先扩充内存 export JACK_SERVER_VM_ARGUMENTS="-Dfile.encod ...
- docker registry 私有仓库 安装配置、查询、删除
#++++++++++++++++++++++++++++++ #docker-registry 私有仓库 #搜索,下载register镜像 docker search registry docker ...
- 【文文殿下】Win7打开无线热点
下载程序 : https://files.cnblogs.com/files/Syameimaru/wifi.rar 打开config.ini 修改相关信息,然后运行程序. 运行成功后,打开网络和共享 ...
- mysql中date,datetime,timestamp数据类型区别
(1)date表示日期,其范围为1000-01-01到9999-12-31 (2)datetime表示日期时间,其范围是1000-01-01 00:00:00到9999-12-31 23:59:59 ...
- js事件委托 jQuery写法
http://www.cnblogs.com/liugang-vip/p/5616484.html 不是抄的,这篇文章写的细 这是js 事件委托写法 <!DOCTYPE html> < ...
- ngRoute 与ui.router区别
angular路由 路由 (route) ,几乎所有的 MVC(VM) 框架都应该具有的特性,因为它是前端构建单页面应用 (SPA) 必不可少的组成部分. 那么,对于 angular 而言,它自然也有 ...
- django -admin 源码解析
admin源码解析 单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时,单 ...
- php内核为变量的值分配内存的几个宏
在php5.3之前,为某变量分配内存是用宏 MAKE_STD_ZVAL; 737 #define MAKE_STD_ZVAL(zv) \ # /Zend/zend.h738 ALLOC_ZVAL(zv ...
- reCaptcha for ASP.NET
使用reCaptcha for asp.net library,以前一直工作正常,最近发现运行不正常了,google到了一个解决方案,不适用control而直接使用api,代码如下: markup: ...