分布式, 集群, 云计算机, 大数据, 负载均衡, 高并发...... 当耳边响起这些词时, 做为一个菜鸟程序猿无疑心中会激动一番(或许这是判断是否是一个标准阿猿的标准吧)!
首先自己从宏观把控一下, 通过上网科普自己遇到问题, 然后再站在这些巨人的肩膀上解决问题.
问题: 在大型 web 应用程系统中, 由于请求的数量过大及并发的因素, 导致 Web 系统会出现宕机的现象!
解决方案主要有以下几个方面:
IIS 负载均衡.
数据库负载均衡.
系统架构优化, 比如: 报表服务器和应用服务器的分离等.
接下来就是研究与解决, 很简单首先捡个软柿子捏, 根据常识以及方案排序, 决定拿 IIS 来开刀.
两张图理解其中的业务流程
首先上网查资料 nginx 相关原理, 文字性描述感觉很无聊, 于是自己总结两张对比图, 如下:
1, 一般情况下(未使用 nginx 服务器流程):
2, 使用 nginx 服务器后流程[注: 本图以一级 nginx 服务器为例] :
根据这两张图对比, 不难得出以下结论:
利用 nginx 管理起 IIS 服务器后:
可靠性大大增强: 一台或多台 IIS 服务器宕机, 服务不中断! 细心的读者发现如果 nginx 服务器宕机那? 当然可以通过配置多个及多级 nginx 服务器来解决.
处理大访问量时大大减小 IIS 服务器压力, 提高访问速度.
消耗硬件资源多: 多增加一台服务器 (在数据量不大的时候 nginx 也可与 IIS 共用一台服务器) 与 N 台 IIS 服务器! 不过在硬件成本不断降低以及高可靠性的今天, 对于大访问量网站, 这个影响几乎可以忽略不计. 要不然也不会有这么多的用户比如国内的用户: 百度, 新浪, 网易, 腾讯等.
理解了 nginx 的逻辑后我们着手部署一个环境实战一下.
实战部署集群实现赋值均衡
[准备工作]
安装一款文本编辑器(这里以 Notepad++ 为例, 使用记事本打开文件有时会是乱码)
下载 Nginx(这里以 Nginx-1.4.7 为例, 其他版本操作相同, 下载地址: http://nginx.org/en/download.html http://nginx.org/en/download.html )
建两个简单网页: 使用 vs 建立四个简单的 Web 项目)
将上面建两个网页分别发布在 IIS 上不同端口号, 并测试发布成功(IISNgNix1 项目端口为 8001,IISNgNix2 项目端口为 8002,IISNgNix3 项目端口为 8003,IISNgNix4 项目端口为 8004)
[配置 Nginx]
使用文本编辑器编辑 Nginx 配置文件(到你解压的相对路径下面的 conf 文件夹下面的 nginx.conf 文件编辑)
进入修改主要修改四个地方, 如图一一标注出来了(温馨提示: 不要用记事本打开修改否则可能会乱码)
使用 Dos 命令进入 Nginx 文件夹并启动 Nginx(这里以将 Nginx 文件夹放在 D 盘根目录下为例)
进入 D 盘: d:
进入文件夹: cd D:\nginx-1.4.7
开启 nginx:start nginx
有个 nginx 的相关命令可到官网进行查看, 或者百度也有很多.
[实现效果]
现在让我们一起见证奇迹吧!
打开浏览器, 在地址栏中输入刚才在 Nginx 中设置的代理(这里是 192.168.0.43:8888)
按 F5 刷新(大家如果有兴趣可以更改配置文件中 Weight 中的比例来看效果, 我这里设置了 2 权重, 也就是说第一个会分配的多一些):
[总结]
简单的部署一个服务器集群实现负载均衡是很容易的, 但是运用到实战中就会有很多问题.
比如我们的 session 就是一个大问题, 因为不同的 iis 之间 session 是不共享的,
导致我们项目的 session 会无效, 这里小伙伴们有什么好的方法的.
小编想我们是不是可以做一个 session 服务器做共享, 每个 iis 都经过 session 服务器, 这样的话 session 就流通了.
具体效果如何我们等待分析.
来源: https://www.cnblogs.com/xiongze520/p/10308720.html