高并发情况使用nginx
nginx应用场景
场景一:一台tomcat服务器对外提供服务
- 特点
- 访问量小,并发小
- 资源有限
- 成本低
因此较为适合中小型企业
- 缺点
- 单点故障问题:当该服务器故障时,客户端无法获取服务
解决方法:使用集群 - 无法应对高并发
- 单点故障问题:当该服务器故障时,客户端无法获取服务
- 升级方法
- 垂直扩展:升级cpu和内存等硬件设施
- 水平扩展:多个服务器共同运行
场景二:多台tomcat服务器对外提供服务
- 特点
- 可应对高并发问题
- 没有单点故障
- 横向扩展方便
负载均衡(LoadBalance)
- LVS(Linux Virtual Server): 虚拟的服务器集群系统
对cpu和内存的消耗低,可靠性高,支持热备
处于七层网络模型的第四层 - Apache HTTP Server
处理请求异步阻塞
是模块插拔式的 - Nginx
轻量级高性能的HTTP和反向代理服务器,占有内存少,并发能力强
处理请求异步非阻塞,性能较高,配合lua脚本使用
处于七层网络模型的第七层
使用nginx方法
下载源代码
http://nginx.org/download/nginx-1.15.0.tar.gz
编译准备
yum group install development tools
yum install gzip-devel
yum install gzip-devel
yum install pcre-devel
编译源码
configure --prefix= /user/local/nginx-1.15.0(nginx源码路径)
- 解压方法:tar xzvf ___ (压缩包路径及名字)
make && make install
正向代理与反向代理
正向代理用途
-
访问原来无法访问的资源(如google等)
-
做缓存, 加速访问资源
-
对客户端访问授权,上网进行认证
-
可以记录用户访问记录
客户端(A、B、C…) 《—正向代理服务器 《===》google.com
客户端和正向代理服务器在同一局域网内
反向代理用途
对于客户端而言并不知道要访问的是什么资源
- 普通Web代理服务器不支持外部对内部网络的访问请求
- 保证内网安全,可以使用反向代理提供WAF功能,阻击WAF攻击
- 负载均衡,通过反向代理服务器优化网站负载
- 缓存静态内容,当静态内容发生变化时通过内部通知机制通知反向代理服务器缓存失效
负载均衡算法
- 加权随机:按权重随机请求后端服务器
- 加权轮询:配置高-负载低的服务器权重高
- 轮询:请求按顺序轮流分配
- 源地址哈希:根据客户端IP地址散列求出hashcode,求模得到一个服务器序号
- 最小链接:动态选取当前连接数最小的一台服务器处理请求