Nginx与服务器集群

集群

集群的概念
集 集合 集中 服务器的集合
群 一堆 一群
服务器的集合 解决实际网站运营过程中,出现的大流量、大并发的问题。解决整个网站架构,出现的突发问题。提高网站的可用性和稳定性。
服务器的概念:
①硬件 性能比较好的电脑主机 刀片机
②软件 能够某种或者多种服务器的软件

1.1 web服务软件

apache apache组织发布一款 web服务器软件 支持多种服务协议 是一款比较稳定的、功能齐全的服务器软件。相对目前使用要安装软件较大,臃肿一些。
nginx 俄罗斯人发明的一款服务器软件,支持多种服务器协议 邮件服务器 web服务器 反向代理服务器 缓存服务器 静态资源服务器 相对小巧 并发高
tengine 淘宝发起的 nginx的一个定制版 基本使用上和nginx无异
IIS 微软公司的服务器软件 最初是ASP使用 后来提高了CGI FASTCGI ISAP 方式给php使用 一般情况下使用不到
lighttpd 德国开发的一款服务器文件 小巧使用方便
tomcat apache组织的一款服务器软件 配合java使用 构建web后端解决方案

1.2 数据库

进行存储数据的服务器软件
集群里的数据库服务器,会使用多台数据库服务器,分布式数据库架构。
主从复制架构 从数据库服务器 同步主数据库的服务器的数据,进行业务中读写分离。
读从服务器,写主服务器
①关系型数据库
mysql mysqlAB=>sun(java)=>oracle
mariadb mysql分支 使用和mysql基本类似
oracle 大型商业数据库
sqlserver 微软公司的数据库
db2 IBM公司 蓝色巨人
postgresql 学院派数据库 加州伯克利大学
sqlite3 小型数据库 手机端软件使用
②非关系型数据库
nosql memcache redis mongodb
1.3 负载均衡
负载均衡是在多台服务器,进行请求分发的服务器。
Nginx与服务器集群
硬件级别: F5 价格较高 几万到几十万不等 性能好
软件级别: 性能比高
lvs linux内置的软件
nginx upstream方式

1.4 资源服务器

一般把经常调用的图片、css、js单独存储在一台读写速度较快(ssd固态硬盘),带宽更宽的服务器。
某宝,京东的资源服务器

1.5反向代理

用途:
①用来代理请求,突破物理限制
②缓存服务器
概念:
正向代理: v*n(网络代理软件) * 内网需要访问到外网的信息
反向代理: 外网需要访问到内网信息
Nginx与服务器集群
squid 老牌的缓存软件 代理服务器
varnish 新型的代理服务器 性能更好

1.6 高可用

高度可用性 监控负载均衡服务器
如果负载均衡服务器宕(dang)机(服务器死机) down机
由高可用服务器,进行接管负载均衡的工作
keeplive 保持活跃
heartbit 心脏敲打

1.7 缓存软件

memcache redis

1.8 cdn内容分发

需求:
服务器在北京
两个用户 一个在天津 一个在上海
原来的情况:天津的用户访问网站较快
解决方案:
就近设置服务器,在杭州设置一台服务器,这样上海的用户访问也变快。
一些云服务商,就推出了cdn服务器,已经在各地搭建加载好服务器,只需要花钱购买使用就可以了。一般是以流量的方式进行收取费用。
cdn提供商:网宿 aliyun Tencent baidu
http://tool.chinaz.com/speedtest.aspx?host=www.baidu.com
集群示意图
Nginx与服务器集群

二、Nginx服务器

nginx 概述

Nginx (“engine x”) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,*使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

2、Nginx特点

1)热部署:nginx在修改配置文件之后,不需要重启。
2)可以高并发连接:相同配置的服务器,nginx比apache能接受的连接多很多。
3)低的内存消耗:相同的服务器,nginx比apache低的消耗
4)处理响应请求很快:nginx处理静态文件的时候,响应速度很快。
5)具有很高的可靠性

3、Apache与Nginx服务器区别

)nginx和apache的软件底层架构不一样。
①:Nginx的并发性要比apache好很多;
②:nginx属于轻量级服务器软件,apache属于重量级软件;
③:nginx在处理静态页的效率要比apache好很多,apache在处理动态页面上的效率要比nginx高
④:apache在安全性要比nginx要好。
因此有一种不常用的组合:lnmpa。