集群
集群的概念
集 集合 集中 服务器的集合
群 一堆 一群
服务器的集合 解决实际网站运营过程中,出现的大流量、大并发的问题。解决整个网站架构,出现的突发问题。提高网站的可用性和稳定性。
服务器的概念:
①硬件 性能比较好的电脑主机 刀片机
②软件 能够某种或者多种服务器的软件
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 负载均衡
负载均衡是在多台服务器,进行请求分发的服务器。
硬件级别: F5 价格较高 几万到几十万不等 性能好
软件级别: 性能比高
lvs linux内置的软件
nginx upstream方式
1.4 资源服务器
一般把经常调用的图片、css、js单独存储在一台读写速度较快(ssd固态硬盘),带宽更宽的服务器。
某宝,京东的资源服务器
1.5反向代理
用途:
①用来代理请求,突破物理限制
②缓存服务器
概念:
正向代理: vpn(网络代理软件) shadowsocks 内网需要访问到外网的信息
反向代理: 外网需要访问到内网信息
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 (“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。
2)运行模式不同的。
①:apache运行PHP是通过加载php5模块运行。由于是apache去加载php5模块,所以每次修改了php.ini配置文件需要重启apache。
②:nginx运行php是通过网络连接php-fpm(fastCGI)方式运行。 php-fpm是一个独立的软件(默认端口:9000)。因此在nginx下修改了php.ini配置文件需要重启php-fpm,而不需要重启nginx。
三、LNMP的安装与配置
lnmp和lamp的区别
1>需要安装nginx服务器
2>php需要重写安装
使用克隆方式,快速拥有一个虚拟机
克隆虚拟机必须关机状态
①克隆虚拟机
②存储虚拟机位置设置
③克隆完成可以启动使用
1、安装nginx
①启动克隆后好的虚拟机,并上传文件到/root/data目录
②查看并执行install_nginx.sh
shell > chmod +x install_nginx.sh
shell > ./install_nginx.sh
③查看安装目录,并启动nginx
启动nginx直接执行/usr/local/nginx/sbin/nginx
以上步骤,nginx就可以进行使用静态资源的解析操作了。返回静态页面,但是现在还是不能够使用php。
2、Nginx配置文件详解
nginx配置文件 /usr/local/nginx/conf/nginx.conf
为了能够方便操作查看nginx的配置文件,可以使用sftp工具结合编辑器进行线上查看修改
如果默认打开编辑器不是,想要使用的编辑器。
3、设置工作进程的数量& d单个进程的连接数(并发量)
5、虚拟主机的配置
语法格式:
一个server段就是一个虚拟机主机
①查看并创建修改一个新的虚拟机
把root网站路径,修改为html/ithm5
②解析域名并创建网站目录,编写网页文件
windows解析需要host文件
linux解析需要/etc/hosts
在win下解析域名,可以访问到linux的ip
创建目录,并编写网页文件
修改好nginx配置文件之后,重载nginx配置文件(热部署)。
6、nginx查看效果
nginx相关的操作命令
四、nginx和php关联
编辑一个php文件
1、安装php-fpm
①给php安装脚本权限并执行操作
shell > chmod +x install_php-nginx.sh
shell > ./install_php-nginx.sh
②复制php配置文件
主配置文件复制
php-fpm配置文件复制
③启动php-fpm
2、nginx.conf配置修改
①添加php解析段
②重载配置文件,查看解析php网页
shell > /usr/local/nginx/sbin/nginx -s reload
问题:
解决
以上操作配置,就完成了lnmp环境的搭建和使用。
五、配置nginx expires缓存功能
1、nginx缓存功能概述
浏览器从服务器取回一张图片。对于在一定时间内,不会发生数据改变的资源,可以通过服务器告知浏览器,没有超过此时间限制,就不需要再次请求服务器,直接返回缓存数据即可。
节省资源(服务器的请求,带宽资源)。
2、nginx.conf详细配置
以.xx结尾的或者是jpeg或者是jpg或者是png
就进行什么什么设置。
①修改缓存配置
重载配置文件
②查看访问请求
上传一个设置了缓存的图片
如果在设置配置文件之后,出现文件找不到的情况,还是网站根目录设置的问题。
需要把root参数尽量提到最上面
六、Nginx的gzip压缩设置
1、nginx的gzip压缩功能概述
gzip是服务器提供压缩方式,在服务器端进行压缩操作,传输的时候文件大小变小,传输更加快速。到浏览器端再进行解压操作。现在基本上大部分浏览器都是支持的。IE6不支持。
2、nginx.conf详细配置
很多东西压缩之后,反而变大。
第1行 开启gzip
第2行 使用http版本 现在使用1.1 设置为1.0
第3行 禁用 不给使用 IE1-6不使用
第4行 需要压缩的文件类型
①修改配置文件
②上传图片文件,重启配置文件,查看返回的响应信息
七、负载均衡的配置
1、负载均衡原理图
2、实战Nginx负载均衡服务器
①克隆两台新的虚拟机
②配置ithm5_lnmp负载均衡服务器
负载均衡服务器 192.168.127.123
web1 192.168.127.163
web2 192.168.127.164
weight 权重 优先访问
max_fails 最大失败次数 如果响应失败次数操作此数字,就不再给此服务器分发请求
fail_timeout 响应失败时间 超过此时间就被认为是失败了
③在不同web服务器写入不同测试信息,查看访问结果
发现可以进行分发请求了
3、SESSION丢失问题
①存储session的磁盘网络共享
②入库操作 memcache redis mysql
③ip一致性 同一用户访问以一台服务器
nginx 的三个应用场景
1静态资源服务:通过本地文件系统提供服务
2反向代理服务: nginx的强大的性能 缓存 负载均衡
3 API服务:OpenResty
主流web服务器
nginx的优点
1 高并发,高性能
2 可扩展性好
3 高可靠性
4热部署
5 BSD 许可证
API服务器和web防火墙 OpenRestry是一个很好的选择