前言
阿里云上使用Ngnix部署了一个静态项目,想通过FTP来管理这个静态项目。搭建前先去了解了一下FTP,FTP是文件传输协议,用于Internet上的控制文件的双向传输,实现服务端和客户端的文件上传和下载。阿里云线上环境是Centos7,这里使用vsftpd来搭建FTP服务。
安装过程
安装vsftpd的服务器及相关软件
安装vsftpd服务器和客户端
yum install ftp vsftpd
安装加密工具
yum install libdb-utils.x86_64
配置vsftpd
创建vsftpd的登录用户和主目录
useradd -s /sbin/nologin znuser
修改密码
passwd znuser
创建vsftpd虚拟用户
|
|
hash加密
db_load -T -t hash -f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vftpuser.db
添加vsftpd的虚拟用户验证
vi /etc/pam.d/vsftpd
把auth和account替换
|
|
修改vsftpd的配置文件vsftpd.conf
vi /etc/vsftpd/vsftpd.conf
修改以下内容
|
|
创建虚拟用户的权限配置
|
|
配置防火墙
vi /etc/sysconfig/iptables
新增以下内容
|
|
启动vsftpd服务
|
|
如果启动失败,查看日志
|
|
本地测试能否登录,如下图显示成功
搭建中遇到的问题
530 login incorrect
搭建中碰到的唯一的一个问题,花了不少时间才解决。首先检查了用户名密码是否正确,确认正确以后尝试了各种网上碰到这个错误的解决办法还是不行。查看日志里面有这么一段话Unregistered Authentication Agent for unix-process:11386:896659 (system bus name :1.69, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8) (disconnected from bus)
,尝试了网上提供的解决办法还是没用。最后删除了vsftp重新安装,安装的过程中发现了原因。第一次安装在创建vsftpd虚拟用户的时创建的是vftpuser
,而在/etc/pam.d/vsftpd
中有那么一段:
这里的vftpuser冲突了,所以一直验证失败,将创建的文件改为vftpuser.txt即可解决。
后记
安装好FTP以后就把静态项目放到了虚拟用户目录之下,我这里的路径是/home/znuser/www
,然后使用Ngnix将项目路径配置为虚拟用户目录,将静态项目发布出去。如果静态项目需要修改,就可以通过ftp客户端连接到服务器,更新内容。这比直接用ssh连接服务器更加安全,通过ftp客户端登录的人只能访问静态项目的目录,不会对服务器其他地方造成误操作。通过ftp服务可以更好的管理整个服务器。