序言
在我们下载一些开发软件时,经常可以见到如图的网页方式,事实上访问的就是文件服务器,我们将使用vsftpd+Nginx在Linux下搭建一个简单的文件服务器
为何要使用文件服务器?主要用于服务器集群构架中,例如使用nginx+tomcat做集群与负载均衡时,假若将文件直接上传到tomcat上,这么因为有多个tomcat,假定A上传图片到了tomcat1上,这么分配到其他tomcat的用户就访问不到了,而文件服务器就可以解决集群环境下图片的访问问题。通过Nginx的一些配置也能增强线上图片的访问速率,但是线上文件服务器一般会单独使用一台云主机与应用服务器相隔离,这样也能减轻应用服务器图片访问及上传下载的压力。
vsftpd简介
简介
vsftpd是"verysecureFTPdaemon"的简写,是一个完全免费的、开放源代码的ftp服务器软件。
特征
vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序,精巧轻柔,安全易用,支持虚拟用户、支持带宽限制等功能。
vsftpd安装
安装
安装:yum-yinstallvsftpd
可通过rpm-qa|grepvsftpd检测是否早已安装vsftpd
默认配置文件在/etc/vsftpd/vsftpd.conf
创建虚拟用户
# 在根目录或者用户目录下创建ftp文件夹,这里选择在根目录mkdir /ftpfile# 添加用户useradd ftpuser -d /ftpfile -s /sbin/nologin# 修改ftpfile文件夹权限chown -R ftpuser.ftpuser /ftpfile# 重设ftpuser密码passwd ftpuser
配置
cd /etc/vsftpd# 创建文件chroot_listvim chroot_list# 添加内容:ftpuser,保存退出vim /etc/selinux/config# 修改SELINUX=disabledsetenforce 0
更改主配置
更改主配置文件:vim/etc/vsftpd/vsftpd.conf
1.搜索banner找到如下注释,取消ftpd_banner注释,新降低三行配置
# You may fully customise the login banner string:ftpd_banner=Welcome to silly FTP service.local_root=/ftpfileanon_root=/ftpfileuse_localtime=yes
2.继续搜索chroot_list,取消如下两行配置的注释
chroot_list_enable=YES# (default follows)chroot_list_file=/etc/vsftpd/chroot_list
3.搜索anon,将如下的配置项值更改为NO
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).anonymous_enable=NO
4.在最底端添加被动传输的端口,最大和最小端口值,在ftp上传文件传输时须要使用的,尽管采用默认的端口范围也可以,而且防火墙的设置就不能太严格,所以线带环境为了安全考虑建议加上端口配置,便捷防火墙配置。
tcp_wrappers=YES# 添加端口配置pasv_min_port=61001pasv_max_port=62000
防火墙配置
vim /etc/sysconfig/iptables# 添加vsftpd的端口配置-A INPUT -p TCP --dport 61001:62000 -j ACCEPT-A OUTPUT -p TCP --sport 61001:62000 -j ACCEPT-A INPUT -p TCP --dport 20 -j ACCEPT-A OUTPUT -p TCP --sport 20 -j ACCEPT-A INPUT -p TCP --dport 21 -j ACCEPT-A OUTPUT -p TCP --sport 21 -j ACCEPT
启动服务
重启防火墙:serviceiptablesrestart
启动vsftpd:servicevsftpdstart
在/ftpfile目录上传一些测试文件及目录,便捷验证查看。
验证
在windows下验证:打开浏览器,以ftp合同访问,如:ftp://192.168.0.108/,访问时会弹出窗口让我们输入ftp的用户名和密码,输入正确的账号后见到如图界面则代表访问成功。
在linux下的验证:输入ftpip联接服务器,须要输入ftp的用户和密码,通过ls命令或则dir命令查看文件服务器的文件列表,输入exit退出。
通过ftp顾客端软件验证:比如cuteftp、filezilla、viperftp、flashftp、leapftp等进行联接ftp服务器,进行文件上传、下载验证。
文件服务器搭建
环境说明
CentOS安装参考:Linux安装
虚拟机使用参考:虚拟机的使用
nginx安装参考:Linux下安装Nginx
host配置
因为我们是在本机进行搭建,所以须要配置host虚拟域名映射,倘若是线带环境有真实域名,请忽视此步。
更改浏览器所在的主机的host文件,这儿更改的是windows的host文件:C:WindowsSystem32driversetc
在末尾添加一行配置:192.168.0.108
nginx配置
1.更改nginx主配置文件nginx.conf
vim /usr/local/nginx/conf/nginx.conf# 在注释内容上面添加如下内容include vhost/*.conf;# another virtual host
2.在Nginx安装目录的conf目录下新建一个vhost目录linux 开源ftp服务器软件,之后在vhost目录下新建配置文件linux 开源ftp服务器软件,文件名须要以.conf结尾
cd /usr/local/nginx/conf/mkdir vhostcd vhost/vim img.silly.com.conf
配置文件添加如下内容
server { listen 80; autoindex on; server_name img.silly.com; access_log /usr/local/nginx/logs/access.log combined; index index.html index.htm index.jsp index.php; location / { root /ftpfile/; add_header Access-Control-Allow-Origin *; }}
环境验证
启动nginx,即执行命令:${nginx}/sbin/nginx,打开浏览器,访问自己上传的任意一张图片linux数据恢复,如:,访问ok则说明环境搭建成功。
后序
我们在Java项目开发中会使用apache的一些ftp开源包,之后我们用上面的工具进行上传图片的时侯,会调用ftp服务,将图片上传到ftp服务器上,这时侯我们能够领到上传图片的文件名,而图片服务器对应的二级域名我们可以在项目中配置,所以上传图片的完整URL才能领到了linux,这么后端就可以通过域名url展示图片了。
本文原创地址://q13zd.cn/vzlxdjygjddw.html编辑:刘遄,审核员:暂无