实现WEB上线并实现负载均衡+域名解析
项目介绍
在linux平台上模拟企业级的应用部署环境,建立FTP,DNS,WEB,Mail等服务器,实现WEB服务器的负载均衡,总体架构的分析以及搭建的详细过程。
(1)DNS服务器用来给用户提供域名与IP的解析功能,使用户可以直接通过域名来访问服务器。
(2)Mail服务器用来实现邮件的收发等功能。
(3)Web服务器来提供网站服务,网站的服务器独立,存储用SAN来搭建,更好的控制了数据的维护、备份等功能。
(4)Web的负载均衡用lvs来实现,使两台服务器可以同时对外提供服务,减少了服务器的压力,也可以防止其中一台出现故障的时候导致的web服务不可用问题。
(5)FTP给用户提供文件的下载,以及上传等功能,使用户可以匿名登录、上传、下载,也可以充当服务器的yum源。
项目流程图
项目实际操作
记得要关掉防火墙和SELINUX
FTP协议
FTP协议的定义:
FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。
默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。
FTP的主要特征:
1.控制连接是建立在客户协议解释器和服务器协议解释器之间用于交换命令与应答的通信链路。
2.数据连接是传输数据的全双工连接。传输数据可以发生在服务器数据传输过程DTP和客户DTP之间,也可以发生在两个服务器的DTP之间。
连接模式 | 简介 |
---|---|
控制连接 | 控制连接为ftp交互最主要的连接。从客户端登录到ftp服务器开始,到登出服务器的整个生命周期里面是始终存在的一条连接。规律来看,服务器和客户端都是一应一答的消息模式,这是单纯的控制。直到连接被断开,ftp客户端和ftp服务器的交互结束。 |
数据连接 | ftp数据连接有多种模式,其中最常见的模式有两种,一种是主动模式,另外一种是被动模式。 |
主动模式 | 在控制连接需要发送数据的时候,ftp客户端会告诉ftp服务器将数据发送到地址和端口信息,之后然后ftp服务器会用自身的20端口将数据发送到ftp客户端,发送完成后,此条数据连接销毁,控制连接会响应一条发送完成的消息给ftp客户端。 |
被动模式 | 上图抓包就是采用了被动模式来发送数据的,从抓包看,ftp客户端发送给ftp服务器一条pasv的信令,ftp服务器响应了227,后面跟随着ip和端口信息,ftp客户端解析这些信息,并连接到指定的ip和端口,接收或者发送数据,进行相应的业务处理。 |
断点续传功能
简单说下断点续传功能,断点续传功能其实就是在发送的过程中,记录下发送的进度,当出现包括网络中断等发送出错的情况下,断开连接。等下次网络好的情况下,继续发送剩余文件的过程。
对于ftp的断点续传上传的功能实现,FTP协议中提供了一条APPE的控制命令用来追加文件,我们所实现的断点续传的命令就是围绕着这个命令进行的。
- 在正常上传的过程中,记录下已经发送的文件的长度
- 当网络发送异常时,记录当前发送文件长度,并关闭当前ftp连接,结束ftp的发送过程
- 当网络正常后,重新开始建立ftp的连接,此时由上传文件改为APPE命令,并在数据连接上发送剩余的数据到ftp服务器。
先安装FTP
注意这里要创建一个普通用户并设置密码,通常来讲我们root用户是个运维人员操作的,防止程序员和访客误操作!!
yum -y install vsftpd
systemctl start vsftpd
vim /etc/vsftpd/vsftpd.conf
anon_mkdir_write_enable=YES #允许匿名登入者有新增目录的权限(33行修改)
anon_other_write_enable=YES #允许匿名登入者更多于上传或者建立目录之外的权限(34行修改)
max_clients=100 #最大用户在线数量(130行,也就是最后一行)
max_per_ip=2 #每ip最大线程(131行,也就是最后一行)
anon_max_rate=30000 #匿名用户最大传输速度(132行,也就是最后一行)
local_max_rate=50000 #本地用户最大传输速度(133行,也就是最后一行)
chmod -R 777 /var/ftp/pub/ #授权
systemctl