Nginx服务器集群

Nginx与服务器集群

集群

什么是集群

集 合在一起 放在一起

群 一堆 很多

服务器架构集群:多台服务器组成的响应大并发、高数据量访问的架构体系

特点:

  • 成本高
  • 能够降低单台服务器的压力,使用流量平均分配到多台服务器
  • 使网站服务架构更加安全稳定

服务器概念:提供某种或者多种服务的机器

硬件:性能比较好的电脑主机

软件:实现各种服务支持特定的协议的软件

web服务软件

提供http https协议的服务器,网站网页访问的功能

apache:老牌的服务器软件,功能多并且稳定,支持多种配置 lamp

nginx:安装简单小巧,并发最高,web服务器,代理服务器,邮箱服务器,lnmp

IIS:微软公司,ASP脚本使用,可以通过fast-cgi的方式使用php

lighttpd:德国开发软件,小巧,提供web服务支持

数据库

关系型数据库(RDBMS)

mysql mysql ab =>sun(java) =>oracle

mariadb mysql的一个分支

oracle 大型商业数据库

sqlserver 微软数据库

DB2 IBM

sqllite3 手机端使用

非关系型数据库

redis

mongodb

负载均衡

负载均衡服务器,分发请求到不同的服务器。使流量平均分配。

服务器死机,称为宕机

硬件级别 F5 性能好 价格高

软件级别 性价比高

lvs linux下分发软件

nginx upstream功能分发

资源服务器

资源服务器存储静态资源,css、js、图片,视频。一般此服务器会有硬盘读写快速,带宽更大

反向代理

代理服务器:

比如a需要访问c,但是a不能够直接访问

  • b可以访问c,a可以访问b
  • a告诉b,帮忙访问c,把c的数据返回给a

squid

varnish

nginx

高可用

高可用服务器,用来监控负载均衡服务器,如果一旦负载均衡宕机,会接替负载均衡服务器的工作,继续进行网络的分发工作,可以认为是负载均衡的备用服务器

hearbit 心脏敲击

keeplive 保持活跃

缓存软件

memcached

redis

cdn内容分发

网站服务器在北京

用户1:天津

用户2:杭州

简单集群架构图示

Nginx服务器

Nginx概述

nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由lgor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因他的稳定性,丰富的功能集,示例配置文件和低系统资源的消耗而闻名。

Nginx是一款轻量级的Web服务器/反向代理服务器以及电子邮件代理服务器,并在一个BSD-like协议下发行。由俄罗斯的程序设计师Lgor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler使用。其特点是占用内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆是使用nginx网站的用户较多

Nginx特点

  • 热部署:nginx在修改配置文件之后,不需要重启,重载操作
  • 可以高并发连接:相同配置的服务器,nginx比apache能接受的连接多很多
  • 低的内存消耗:相同的服务器,nginx比apache消耗低
  • 处理响应请求很快:nginx处理经台湾文件的时候,响应速度很快
  • 具有很高的可靠性

Nginx与apache的比较

nginx和apache的软件底层架构不一样。

  • Nginx的并发性要比apache好很多
  • Nginx属于轻量级的服务器软件,apache属于重量级软件
  • Nginx在处理静态页的效率要比apache好很多,apache在处理动态页上的效率要比nginx高
  • 因此有一种不常用的组合:lnamp

运行模式不同

  • apache运行php是通过加载php5模块运行,由于是apache去加载php5模块,所以每次修改了php.ini文件需要重启apache
  • nginx运行php是通过网络连接php-fpm方式运行,php-fpm是一个独立的软件(默认端口:9000).因此在nginx下修改了php.ini配置文件需要重启php-fpm

Nginx脚本安装

#bin/bash
groupadd www
useradd -g www -s /usr/sbin/nologin www
cd /root/nginx
#pcre
tar zxvf pcre-8.39.tar.gz
tar zxvf nginx-1.11.3.tar.gz
cd nginx-1.11.3/
./configure --user=www --group=www \
--prefix=/usr/local/nginx \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-pcre=/root/nginx/pcre-8.39 \
--with-openssl=/root/nginx/openssl-1.0.1t
make && make install

重要:linux中自己编写脚本的使用

配置nginx expires

nginx缓存功能概述

nginx通过配置,可以告知浏览器,返回数据的有效时间,浏览器就可以根据数据的有效时间,确认是否应该到服务器请求,如果数据没有超过有效期,就使用浏览器缓存的数据。缓存功能开启,是为了用户能够快速获取使用的数据。可以减少服务器请求,降低带宽压力。

nginx.conf详细配置

缓存图片文件

location ~\.(jpeg|jpg|png)${
    #缓存时间为1day
    expires 1d;
}

Nginx的gzip压缩设置

nginx的gzip压缩功能概述

压缩资源,通过网络发送的大小就更加节省资源了。带宽占用变小。启用压缩机制,为了能够快速访问到资源。web服务器进行压缩,浏览器需要解压缩操作。

gzip压缩配置

#配置gzip压缩
gzip on;
#http的协议版本
gzip_http_version 1.0;
#如果是IE的话,就关闭压缩
gzip_disable 'MSIE [1-6].';

负载均衡的配置

实战Nginx负载均衡服务器

配置负载均衡服务器,分发段配置

####负载均衡服务配置
upstream xuxiaonan{
    #服务器IP地址        权重分发优先级   分发的最大失败次数   失败的超时时间
    server 47.100.126.* weight=1 max_fails=3 fails_timeout=20s;
    server 47.100.126.* weight=1 max_fails=3 fails_timeout=20s;
}
server{
    .....
    .....
    location / {
        #分发代理
        proxy_pass http://xuxiaonan
    }
}

流程:访问域名找到对应的虚拟主机,通过虚拟主机代理到upstream,upstream分发到各个web服务器

Session丢失问题

不同的服务器,需要同session判断用户的状态

默认session是存储到服务器的硬盘文件中,不能够共享

用户状态无法判断,用户是否登录,验证码没有办法验证

解决方案:

  • 入库 memcache mysql redis
  • 硬盘共享方式 磁盘共享方式(并不推荐)
  • ip_hash一致性让同一个用户访问同一台服务器
ip_hash;
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值