文件服务器搭建

前言

在我们下载一些开发软件时,常常可以看到如图的网页形式,事实上访问的就是文件服务器,我们将使用vsftpd + Nginx在Linux下搭建一个简单的文件服务器

为什么要使用文件服务器?

  1. 主要用于服务器集群架构中,比如使用nginx+tomcat做集群与负载均衡时,如果将文件直接上传到tomcat上,那么由于有多个tomcat,假设A上传图片到了tomcat1上,那么分配到其他tomcat的用户就访问不到了,而文件服务器就可以解决集群环境下图片的访问问题。
  2. 通过Nginx的一些配置也能提高线上图片的访问速度,并且线上文件服务器通常会单独使用一台云主机与应用服务器相隔离,这样也能缓解应用服务器图片访问及上传下载的压力。

vsftpd简介

简介

vsftpd是"very secure FTP daemon"的缩写,是一个完全免费的、开放源代码的ftp服务器软件。

特点

vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序,小巧轻快,安全易用,支持虚拟用户、支持带宽限制等功能。

vsftpd安装

安装

安装命令:yum -y install vsftpd
可通过 rpm -qa| grep vsftpd 命令检查是否已经安装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_list
vim chroot_list
# 添加内容:ftpuser,保存退出
vim /etc/selinux/config
# 修改SELINUX=disabled
setenforce 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=/ftpfile
anon_root=/ftpfile
use_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=61001
pasv_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
启动服务

重启防火墙:service iptables restart
启动vsftpd:service vsftpd start
/ftpfile目录上传一些测试文件及目录,方便验证查看。

验证

在windows下验证:打开浏览器,以ftp协议访问,如:ftp://192.168.0.108/,访问时会弹出窗口让我们输入ftp的用户名和密码,输入正确的帐号后看到如图界面则代表访问成功。

在linux下的验证:输入命令 ftp ip 连接服务器,需要输入ftp的用户和密码,通过ls命令或者dir命令查看文件服务器的文件列表,输入exit退出。

通过ftp客户端软件验证:例如cuteftp、filezilla、viperftp、flashftp、leapftp等进行连接ftp服务器,进行文件上传、下载验证。

文件服务器搭建

环境说明

CentOS安装参考:Linux安装
虚拟机使用参考:虚拟机的使用
nginx安装参考:Linux下安装Nginx

host配置

由于我们是在本机进行搭建,所以需要配置host虚拟域名映射,如果是线上环境有真实域名,请忽略此步。
修改浏览器所在的主机的host文件,这里修改的是windows的host文件:C:\Windows\System32\drivers\etc
在末尾添加一行配置:192.168.0.108 img.silly.com

nginx配置

1.修改nginx主配置文件nginx.conf

vim /usr/local/nginx/conf/nginx.conf
# 在注释内容上面添加如下内容
include vhost/*.conf;
# another virtual host

2.在Nginx安装目录的conf目录下新建一个vhost目录,然后在vhost目录下新建配置文件,文件名需要以.conf结尾

cd /usr/local/nginx/conf/
mkdir vhost
cd 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,打开浏览器,访问自己上传的任意一张图片,如:http://img.silly.com/mountain.jpg,访问ok则说明环境搭建成功。

后序

我们在Java项目开发中会使用apache的一些ftp开源包,然后我们用里面的工具进行上传图片的时候,会调用ftp服务,将图片上传到ftp服务器上,这时候我们就能拿到上传图片的文件名,而图片服务器对应的二级域名我们可以在项目中配置,所以上传图片的完整URL就能拿到了,那么前端就可以通过域名url展示图片了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341