服务器类型

ipvsadm集群

时间秒杀一切 提交于 2019-12-20 01:45:51
集群 一组通过高速网络互联的计算机组,并以单一系统的模式加以管理 将很多服务器集中起来一起,提供同一种服务,在客户端看来就像是只有一个服务器 可以在付出较低成本的情况下获得在性能,可靠性,灵活性方面的相对较高的收益 任务调度是集群系统中的核心技术 集群分类 1.高性能计算集群HPC:通过以集群开发的并行应用程序,如计算密集型应用 2.负载均衡(LB)集群:客户端负载在计算机集群中尽可能平均分摊 3.高可用(HA)集群:避免单点故障,当一个系统发生故障时,可以快速迁移 LVS:可以实现高可用的,可伸缩的,web,mail,cache和media等网络服务 最终目标是利用Linux操作系统和LVS集群软件实现一个高可用,高性能,低成本的服务器应用集群 LVS集群组成 前端:负载均衡层 中间:服务器群组层 底端:数据共享存储层 LVS术语 Director Server:调度服务器 Real Server:真实服务器 VIP:虚拟IP地址:调度器对外的IP RIP:真实IP地址:集群节点上使用的IP地址 DIP:调度器连接节点服务器的IP地址:调度器对内的IP LVS与NGINX的区别 Nginx代理服务器需要对请求进行解包的过程,再封装转交给集群,反之也是如此,增加了大量封装解包的过程.ip层次来说,web服务器收到的请求的ip不是直接来自于客户端,而是来自于代理服务器.

LVS负载均衡群集——理论篇

霸气de小男生 提交于 2019-12-19 19:40:21
LVS负载均衡群集 理解负载均衡群集的原理 掌握LVS-NAT的部署 企业群集应用概述 群集的含义: 1.Cluster,集群、群集 2.由多台主机构成,但对外只表现为一个整体 在互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求越来越高,单台服务器力不从心 解决方法: 1.使用价格昂贵的小型机、大型机 2.使用普通服务器构建服务群集 企业群集分类 根据群集所针对的目标差异,可分为三种类型: 1.负载均衡群集(轮询,最小连接的加权重) 2.高可用群集(访问的速度,可靠性) 3.高性能运算群集(并发处理任务) 负载均衡群集(Load Balance Cluster): 1.以提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、负载(LB) 的整体性能 2.LB的负载分配依赖于主节点的分流算法 高可用群集(High Availability Cluster): 1.以提高应用系统的可靠性、尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA) 的容错效果 2.HA的工作方式包括双工和主从两种模式 高性能运算群集(High Performance Computer Cluster): 1.以提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算(HPC)能力 2

squid介绍及其简单配置

六月ゝ 毕业季﹏ 提交于 2019-12-19 18:50:01
squid的简单介绍 squid的概念 squid是一种用来缓存Internet数据的软件。接受来自人们需要下载的目标(object)的请求并适当的处理这些请求。也就是说,如果一个人想下载一web界面,他请求squid为他取得这个页面。squid随之连接到远程服务器并向这个页面发出请求。然后,squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时, squid可以简单的从磁盘中读到它,那样数据会立即传输到客户机上。 squid代理的作用 通过缓存的方式为用户提供Web访问加速 对用户的Web访问进行过滤控制 工作流程 当代理服务器中有客户端需要的数据时: a. 客户端向代理服务器发送数据请求; b. 代理服务器检查自己的数据缓存; c. 代理服务器在缓存中找到了用户想要的数据,取出数据; d. 代理服务器将从缓存中取得的数据返回给客户端。 当代理服务器中没有客户端需要的数据时: 客户端向代理服务器发送数据请求; 代理服务器检查自己的数据缓存; 代理服务器在缓存中没有找到用户想要的数据; 代理服务器向Internet 上的远端服务器发送数据请求; 远端服务器响应,返回相应的数据; 代理服务器取得远端服务器的数据,返回给客户端,并保留一份到自己的数据缓存中。 Squid代理服务器工作在TCP/IP应用层 Squid各种代理的定义 正向代理

【转】网关协议学习:CGI、FastCGI、WSGI、uWSGI

*爱你&永不变心* 提交于 2019-12-19 18:45:11
一直对这四者的概念和区别很模糊,现在就特意梳理一下它们的关系与区别。 CGI CGI即通用网关接口(Common Gateway Interface),是外部应用程序(CGI程序)与Web服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的规程。CGI规范允许 Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。通俗的讲CGI 就像是一座桥,把网页和WEB服务器中的执行程序连接起来,它把HTML接收的指令传递给服务器的执行程序,再把服务器执行程序的结果返还给HTML页。 CGI 的跨平台性能极佳,几乎可以在任何操作系统上实现。 CGI方式在遇到连接请求(用户请求)先要创建cgi的子进程,激活一个CGI进程,然后处理请求,处理完后结束这个子进程。这就是fork- and-execute模式。所以用cgi方式的服务器有多少连接请求就会有多少cgi子进程,子进程反复加载是cgi性能低下的主要原因。当用户请求数 量非常多时,会大量挤占系统的资源如内存,CPU时间等,造成效能低下。 CGI脚本工作流程: 浏览器通过HTML表单或超链接请求指向一个CGI应用程序的URL。 服务器收发到请求。 服务器执行所指定的CGI应用程序。 CGI应用程序执行所需要的操作,通常是基于浏览者输入的内容。

Nginx学习

自作多情 提交于 2019-12-19 12:52:42
一、nginx的基本概念 1、nginx是什么,能做什么事情 1.1 nginx概述 nginx是一个高性能的HTTP和反向代理服务器,特点是占用内存少,并发能力强。nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,有报告表明能支持高达50000个并发连接 2、反向代理 2.1 正向代理 在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网访问(正向代理代理的是客户端,服务器不知道实际的客户端是谁) 2.2 反向代理 反向代理代理的是服务器,客户端对反向代理是无感知的,我们只需要将请求发送到反向代理服务器,由反向代理服务器取选择目标服务器再返回给客户端,客户端不知道真正的后台服务器是谁,暴露的是代理服务器的地址。 3、负载均衡 在服务器访问量很大的情况下,单个服务器无法承担那么高的并发数,因此我们增加服务器的数量,然后将请求分发到多个服务器上,将原先请求集中在单个服务器上改为将请求分发刀多个服务器上,这就是负载均衡。 4、动静分离 为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力 二、nginx安装、命令和和配置文件 1、在linux系统中安装nginx 1.1 安装依赖包:yum -y install make zlib zlib-devel gcc-c++ libtool

数据库连接池的问题

谁都会走 提交于 2019-12-19 12:50:14
数据库连接池技术带来的优势: 1. 资源重用 由于数据库连接得到重用,避免了频繁创建、释放连接引起的大量性能开销。在减少系统消耗的基础上,另一方面也增进了系统运行环境的平稳性(减少内存碎片以及数据库临时进程/线程的数量)。 2. 更快的系统响应速度 数据库连接池在初始化过程中,往往已经创建了若干数据库连接置于池中备用。此时连接的初始化工作均已完成。对于业务请求处理而言,直接利用现有可用连接,避免了数据库连接初始化和释放过程的时间开销,从而缩减了系统整体响应时间。 3. 新的资源分配手段 对于多应用共享同一数据库的系统而言,可在应用层通过数据库连接的配置,实现数据库连接池技术,几年钱也许还是个新鲜话题,对于目前的业务系统而言,如果设计中还没有考虑到连接池的应用,那么…….快在设计文档中加上这部分的内容吧。某一应用最大可用数据库连接数的限制,避免某一应用独占所有数据库资源。 4. 统一的连接管理,避免数据库连接泄漏 在较为完备的数据库连接池实现中,可根据预先的连接占用超时设定,强制收回被占用连接。从而避免了常规数据库连接操作中可能出现的资源泄漏。一个最小化的数据库连接池实现. 连接池类是对某一数据库所有连接的“缓冲池”,主要实现以下功能:①从连接池获取或创建可用连接;②使用完毕之后,把连接返还给连接池;③在系统关闭前,断开所有连接并释放连接占用的系统资源;④还能够处理无效连接

长连接、短连接、长轮询和WebSocket

爷,独闯天下 提交于 2019-12-19 09:49:07
原文链接: http://caibaojian.com/http-connection-and-websocket.html 对这四个概念不太清楚,今天专门搜索了解一下,总结一下: · 长连接:在 HTTP 1.1, 客户端发出请求,服务端接收请求,双方建立连接,在服务端没有返回之前保持连接,当客户端再发送请求时,它会使用同一个连接。这一直继续到客户端或服务器端认为会话已经结束,其中一方中断连接。 优势:减少了连接请求,降低TCP阻塞,减少了延迟,实时性较好。 劣势:可能会影响性能,因为它在文件被请求之后还保持了不必要的连接很长时间。 短连接:在 HTTP 1.0中,客户端发送请求,服务器接收请求,双方建立连接,服务器响应资源,请求结束。 长轮询:(我自己的理解)客户端不断发送请求,获取服务器上的数据。也有人说是长连接的一种,是这样吗??? WebSocket :客户端发送一次http websocket请求,服务器响应请求,双方建立持久连接,并进行双向数据传输,后面不进行 HTTP 连接,而是使用TCP连接。 什么是长连接、短连接? 在HTTP/1.0中默认使用短连接。也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。当客户端浏览器访问的某个 HTML 或其他类型的 web 页中包含有其他的Web资源(如 JavaScript 文件、图像文件、

PHP socket以及http、socket、tcp、udp

送分小仙女□ 提交于 2019-12-19 08:23:15
一、TCP/UDP/Socket TCP/IP( Transmission Control Protocol/Internet Protocol)即传输控制协议 /网间协议,是一个工业标准的协议集,它是为广域网( WANs)设计的。 UDP( User Data Protocol,用户数据报协议)是与 TCP相对应的协议。它是属于 TCP/IP协议族中的一种。 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。 HTTP是一个属于应用层的面向对象的协议。 TCP: 先从服务器端说起。服务器端先初始化Socket,然后与端口绑定(bind),对端口进行监听(listen),调用accept阻塞,等待客户端连接。在这时如果有个客户端初始化一个Socket,然后连接服务器(connect),如果连接成功,这时客户端与服务器端的连接就建立了。客户端发送数据请求,服务器端接收请求并处理请求,然后把回应数据发送给客户端,客户端读取数据,最后关闭连接,一次交互结束。 二、 socket相关函数: -----------------------------------------------

linux日志守护进程 syslog

拈花ヽ惹草 提交于 2019-12-19 08:22:45
几乎所有的网络设备都可以通过syslog协议,将日志信息以UDP的形式传送给远端服务器,远端接收日志服务器必须通过syslogd监听UDP端口514,并根据 syslog.conf 配置文件张的配置处理。配置文件 /etc/rsyslog.conf 中规定了syslogd如何根据设备和信息的重要级别来报告信息。 CentOS6.5之前,配置文件为/etc/syslog.conf,从CentOS6.5之后,配置文件名变更为/etc/rsyslog.conf 。 syslog支持日志分类输出到特定文件中,但是有几个限制: 1、syslog日志输出支持分类,但不支持每个进程单独输出到某个文件(因为syslog并不是作为一套完整的日志库而产生的); 2、syslog输出的日志文件位置并不是任意的,默认仅仅限于【/var/log/】目录下,如果指定到其他位置,视为无效; 配置文件的格式: 【服务.优先级 <tab> action字段】。 其中,【服务.优先级】一起统称为选择条件。条件选择是对服务进行了分类,便于syslog对日志的输出管理。同时一行的配置中,允许出现多个选择条件,多个选择条件使用 ; 隔开。 服务(facility),用来指定syslog的功能,主要包括: 1 kern 内核信息,首先通过 klogd 传递; 2 user 用户进程; 3 mail 邮件; 4 daemon

原生JS实现Ajax

旧城冷巷雨未停 提交于 2019-12-19 00:22:54
一般来说,大家可能都会习惯用JQuery提供的Ajax方法,但是用原生的js怎么去实现Ajax方法呢? JQuery提供的Ajax方法: $.ajax({ url: , type: '', dataType: '', data: { }, success: function(){ }, error: function(){ } }) 原生js实现Ajax方法: var Ajax={ get: function(url, fn) { // XMLHttpRequest对象用于在后台与服务器交换数据 var xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.onreadystatechange = function() { // readyState == 4说明请求已完成 if (xhr.readyState == 4 && xhr.status == 200 || xhr.status == 304) { // 从服务器获得数据 fn.call(this, xhr.responseText); } }; xhr.send(); }, // datat应为'a=a1&b=b1'这种字符串格式,在jq里如果data为对象会自动将对象转成这种字符串格式 post: function (url, data, fn) {