IIS实现负载均衡,通过ARR和URL重写
一、实现整体方式介绍
项目中部署在windows服务器上的项目,需要部署负载均衡,本来想用nginx来配置的,奈何iis上有几个项目,把80端口和443端口占用了,nginx就用不了了(因为通过域名访问的,必须要用80和443端口),只能通过IIS的方式实现了。
这里用2个服务在一台机器上负载来做演示,2个服务+一个代理我们需要建3个网站
127.0.0.1:8050 (代理网站,客户端访问的地址,用来绑定访问的域名和端口的)
127.0.0.1:8051(负载的服务1,代理网站会转发到这里来)
127.0.0.1:8052(负载的服务2,代理网站会转发到这里来)
二、配置负载均衡服务
1、首先需要安装ARR和URL重写2个IIS的功能
这里安装包上传到了网盘。https://pan.baidu.com/s/10BZkDEuSXu_9UWmga9NFbA?pwd=loie
备用下载:IIS负载均衡_ARR安装包.7z
安装完后,我们的服务器就多了这两个功能了,如果负载均衡是多台服务器的,只需要代理那台安装就可以了。
2、把前面3个网站先准备好
先创建网站proxy,指向一个空文件夹,绑定端口8050
为了防止出一些问题,代理的应用程序池设置回收时间为0即不回收
再创建一个web1绑定8051,一个web2绑定8052,指向的文件夹为网站的文件夹,这里只在文件夹里放一个index.html,里面就一段文字区分。
3、上面3个可以访问的站点都创建好了,下面创建负载的服务器场
下一步如果弹出是否自动创建url 重写规则,选否,后面我们再手动创建,不然全部端口的请求都会转发到这里的负载上来,我们实际是只需要转发8050端口的请求到负载上就行了。
在创建的Server中取消缓存,不然访问同请求地址会直接缓存返回,不经过站点
还可以配置站点健康检查
其它一些功能
三、把请求转发到负载均衡器
创建URL重写规则,把代理站端口的请求转发到上面配置的负载均衡器
条件处,如果用的是域名的且http和https都使用的可以用任意匹配,然后,添加
输入:{HTTP_HOST}:{SERVER_PORT} 模式:^abc.com:80$
输入:{HTTP_HOST}:{SERVER_PORT} 模式:^abc.com:443$
到这里就可以了,访问8050端口,会转发到负载的站点8051和8052
2024-01-15 10:08:33【出处】:https://www.cnblogs.com/wei325/p/17939429#autoid-0-0-0
=======================================================================================
评论区
这里很多人也在问,两台服务器的session怎么整?授权怎么弄?
session共享不了,session换数据库,cookie,redis,ASP.NET State Service 也可了解下
授权接口用token校验等
这里只是提供一个思路,完全可以使用nginx代替以上方案,可以统一用nginx转发, 把以前直达到80,443网站,改成由nginx转发, 其余新的服务也走nginx转发,还可以用.net6 做个中间代理,用 httpclient 把请求转向到目标站点,或使用CGI程序实现转发。
我这大概30多个独立域名,全部解析指向同一个物理IP,这个IP地址使用负载均衡虚拟出来,由多台nginx服务器负责,哪台出问题了,另外的自动接管,然后通过nginx做反向代理,分发给其他物理服务器。
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/17964816
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek “源神”启动!「GitHub 热点速览」
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
2021-01-15 常见激活函数的介绍和总结
2021-01-15 软件开发模式之敏捷开发(scrum)
2020-01-15 C#WinForm程序异常退出的捕获、继续执行与自动重启
2018-01-15 大学数学网 ---- 数学资料下载
2018-01-15 机器学习 ----Tensorflow
2018-01-15 C#设计模式 ---- 总结汇总
2018-01-15 树莓派(raspberry pi)系统开发