asp.net实现负载均衡
我的目标是我一个人搭建一个负载均衡网站。不接受这是网络部,或者运维,或者系统部的事情,所有事情都是我一个人来完成,包括掏钱,包括将来发展等等,同时也别告诉我有没有意义,just do it !给我方案,给我方法。
拥有资源:不够可以买,多了可以先闲着。
现在我已经买了5台阿里云服务器,ip地址分别为
ip地址 名字简称 操作系统 iis服务器 cpu 内存DDR3 机械硬盘 111.13.101.204 ay1 window7 iis7 4核 8GB 1TB 111.13.101.205 ay2 window7 iis7 4核 8GB 1TB 111.13.101.206 ay3 window7 iis7 4核 8GB 1TB 111.13.101.207 ay4 window7 iis7 2核 4GB 1TB 111.13.101.208 ay5 window7 iis7 2核 4GB 1TB
我买好一个域名:www.bd.com(已备案)
项目已经做好,用asp.net MVC4开发, .netFramework4.5 项目名MyBD
项目首页是index.cshtml
项目结构WebSite\xxx
使用数据库sqlserver2014
我现在希望将项目发布多份,分别放在不同的服务器上,但是只能用一个域名 www.bd.com,我不是子域名主域名那种应用场景。
下来我想问,我该如何操作?
--------------------------------------------------------------------------------------------------
该文章题目也可以称为,如何将一个网站发布到两台服务器上,或者如何将一个项目发布到两个服务器上。 方便搜索引擎索引(改行文字)。
想先搭建一个负载均衡的架构,至于是否必要,是否浪费资源请不要考虑,但是可以考虑以后如何扩展。
希望更多人能看到,大家在评论里面给出自己的方案或建议。
我在百度搜索解决方案,有人的方案是,在HttpHandler中捕获到用户请求,然后从一组定以好的 跳转地址中随机选择一个,然后进行跳转
定义好服务器地址: static string [] servers= {" http://192.168.1.100/index.aspx" , "http://192.168.1.101.aspx"};
Response.Redirect(servers[DateTime.Now.Millisecond % 2]);这里这个随机算法,完全可以可以自己自定义,也可以借助数据库来进行,决定跳转到哪里。
这种方案是浏览器发送了两次请求,而且性能受这个拦截服务器的瓶颈限制。 这些是从大哥Luminji学来的。
相关推荐
-
windows安装nginx部署步骤图解(反向代理与负载均衡)
一.下载安装Nginx(本文环境为windows xp 32bit环境) 解压nginx-1.0.11.zip,进入nginx-1.0.11,在命令行中执行命令让Nginx启动.具体操作如下图: 测试是否安装成功,输入地址:http://localhost:8090 浏览器显示结果如下图: OK,Nginx部署成功了. 二.关于Nginx的反向代理配置. 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器
-
nginx 作为反向代理实现负载均衡的例子
nginx 这个轻量级.高性能的 web server 主要可以干两件事情: 〉直接作为http server(代替apache,对PHP需要FastCGI处理器支持): 〉另外一个功能就是作为反向代理服务器实现负载均衡 以下我们就来举例说明如何使用 nginx 实现负载均衡.因为nginx在处理并发方面的优势,现在这个应用非常常见.当然了Apache的 mod_proxy和mod_cache结合使用也可以实现对多台app server的反向代理和负载均衡,但是在并发处理方面apache还是没有
-
linux服务器之LVS、Nginx和HAProxy负载均衡器对比总结
LVS特点: 1.抗负载能力强,使用IP负载均衡技术,只做分发,所以LVS本身并没有多少流量产生: 2.稳定性.可靠性好,自身有完美的热备方案:(如:LVS+Keepalived) 3.应用范围比较广,可以对所有应用做负载均衡: 4.不支持正则处理,不能做动静分离. 常用四种算法: 1.rr:轮叫,轮流分配到后端服务器: 2.wrr:权重轮叫,根据后端服务器负载情况来分配: 3.lc:最小连接,分配已建立连接最少的服务器上: 4.wlc:权重最小连接,根据后端服务器处理能力来分配. 可以采用ip
-
nginx基于tcp做负载均衡的方法
配置多台服务器时,经常需要让各个服务器之间的时间保持同步,如果服务器有外网环境,可以直接同外部的时间服务器更新时间,可以采用rdate命令更新时间: rdate -s tick.greyware.com 可以写个脚本放在/etc/cron.hourly中每小时校正一下时间. 如果是内网环境下,可以自己配置一个时间服务器,以CentOS为例,配置时间服务器的方法如下: 1.先安装xinetd : sudo yum install -y xinetd 2.修改/etc/xinetd.d/time-
-
Shell脚本实现把进程负载均衡到多核CPU中
有时候,由于架构设计或其他业务本身特点原因,导致有些应用使用CPU很不均衡,所以业务处理集中在一个CPU上,而其它CPU闲得在睡觉.这里有个简单的优化方案实现将各个线程绑定到到多个CPU,从而实现性能的提高. 虽然CPU是一个不错的思路,但是不是杀手锏,其性能能提高多少依赖于各个线程的性能分布是否均匀:所以最好的办法是优化你的程序架构. 在这里分享一个Shell脚本(脚本名为bindcpu2p.sh),通过该脚本可将该进程均匀负载到各个CPU上. 复制代码 代码如下: #!/bin/sh pid
-
Nginx做NodeJS应用负载均衡配置实例
负载均衡可以把用户的请求分摊到多个服务器上进行处理,从而实现了对海量用户的访问支持.负载均衡的架构如图所示: 对于复杂的Web应用来说,用Nginx做前端负载均衡是理所当然的事. 下面,我们用Nginx做NodeJS应用的负载均衡. 1.配置Nginx 修改nginx.conf: upstream sample { server 127.0.0.1:3000; server 127.0.0.1:3001; keepalive 64; } server { listen 80; .... serv
-
Nginx+Windows负载均衡配置方法
一.下载Nginx http://nginx.org/download/nginx-1.2.5.zip 解压到C:\nginx目录下 二.在两台服务器上分别建一个网站: S1:192.168.16.35:8054 S2:192.168.16.16:8089 二.找到目录 C:\nginx\conf\nginx.conf 打开nginx.conf 配置如下: 复制代码 代码如下: #使用的用户和组,window下不指定 #user nobody; #指定工作衍生进程数(一般等于CPU总和数或总和数
-
apache负载均衡的安装和实现方法
其实无论是分布式,数据缓存,还是负载均衡,无非就是改善网站的性能瓶颈,在网站源码不做优化的情况下,负载均衡可以说是最直接的手段了。其实抛开这个名词,放开了说,就是希望用户能够分流,也就是说把所有用户的访问压力分散到多台服务器上,也可以分散到多个tomcat里,如果一台服务器装多个tomcat,那么即使是负载均衡,性能也提高不了太多,不过可以提高稳定性,即容错性。当其中一个主tomcat当掉,其他的tomcat也可以补上,因为tomcat之间实现了Session共享。待tomcat服务器修复后再次
-
asp.net实现负载均衡
我的目标是我一个人搭建一个负载均衡网站.不接受这是网络部,或者运维,或者系统部的事情,所有事情都是我一个人来完成,包括掏钱,包括将来发展等等,同时也别告诉我有没有意义,just do it !给我方案,给我方法. 拥有资源:不够可以买,多了可以先闲着. 现在我已经买了5台阿里云服务器,ip地址分别为 ip地址 名字简称 操作系统 iis服务器 cpu 内存DDR3 机械硬盘 111.13.101.204 ay1 window7 iis7 4核 8GB 1TB 111.13.101.205 ay
-
如何解决asp.net负载均衡时Session共享的问题
每个客户端在访问网站时,都会创建相应的Session,用来保存客户的状态信息,网站如果做了负载均衡,session共享是要做的,IIS对于session的存储有五种模式 一.ASP.Net session存储方式 1.InProc模式(进程内模式) .为默认设置. 会话状态存储在Web服务器上的内存中. 2.StateServer模式(状态服务器模式). 会话状态存储在一个名为ASP.Net状态服务的单独进程中.这确保了在重新启动Web应用程序时会保留会话状态,并让会话状态可用于网路场中的多个W
-
ASP.NET Core3.1 Ocelot负载均衡的实现
1.负载均衡 Ocelot可以在每个路由的可用下游服务中实现负载均衡,这使我们更有效地选择下游服务来处理请求.负载均衡类型: LeastConnection:根据服务正在处理请求量的情况来决定哪个服务来处理新请求,即将新请求发送到具有最少现有请求的服务去处理.算法状态没有分布在Ocelot集群中. RoundRobin:遍历可用服务并发送请求.算法状态没有分布在Ocelot集群中. NoLoadBalancer:从配置或服务发现中获取第一个可用服务来处理新请求. CookieStickySess
-
Nginx负载均衡详细介绍
如果只有一台服务器时,这个服务器挂了,那么对于网站来说是个灾难.因此,这时候的负载均衡就会大显身手了,它会自动剔除挂掉的服务器. 下面简单的介绍下我使用Nginx做负载的体会 下载---安装Nginx这些不介绍了,前篇有介绍. windows和Linux下配置Nginx负载的写法一样,故不分开介绍. Nginx负载均衡一些基础知识: nginx 的 upstream目前支持 4 种方式的分配 1).轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除.
-
Nginx负载均衡(架构之路)详解
在大型网站中,负载均衡是有想当必要的.尤其是在同一时间访问量比较大的大型网站,例如网上商城,新闻等CMS系统,为了减轻单个服务器的处理压力,我们引进了负载均衡这一个概念,将一个服务器的压力分摊到几个服务器上,一方面减轻了宕机的几率,另一方面也使得宕机后还要其他服务器可以继续稳定运行,提高了系统的健壮性. [实现功能] 这篇文章将要介绍的主要内容如下: 1.配置三台服务器 2.分别在三台服务器上部署同样的服务代码 3.使用Nginx实现负载均衡 [实现思路] 我们的Nginx负载均衡器将部署在一台
-
nginx 负载均衡 多站点共享Session
多站点共享Session常见的作法有: •使用.net自动的状态服务(Asp.net State Service); •使用.net的Session数据库: •使用Memcached. •使用Cookie方式实现多个站点间的共享(这种方式只限于几个站点都在同一域名的情况下): 这里我们就 演练一下 以数据库的形来存储Session,来实现多站点共享Session. 首先我们 建好一下站点,如下图: Default.aspx 其中 有二个Button ,SetSession 主要是用于给一个 S
-
linux负载均衡总结性说明 四层负载和七层负载有什么区别
在常规运维工作中,经常会运用到负载均衡服务.负载均衡分为四层负载和七层负载,那么这两者之间有什么不同? 废话不多说,详解如下: 一.什么是负载均衡 1)负载均衡(Load Balance)建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用性.负载均衡有两方面的含义:首先,大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间:其次,单个重负载的运算分担到多台节点设备上做并行处理,每个节点
-
win2003 使用DNS服务器实现负载均衡
解决方法有很多,如使用Windows2000或WindowsServer2003提供网络负载均衡服务,但该服务的设置非常复杂.而通过DNS服务器实现网络负载均衡则是一种比较简单的方法. 笔者以企业网中的Web服务器为例来介绍一下如何使用DNS服务器实现网络负载均衡.为了提高域名为"www.jb51.net"的网站的访问量,在企业网中部署三台内容相同的Web服务器,它们提供相同的服务,但每台服务器的IP地址都不一样.下面对企业网中的DNS服务器进行设置来实现三台Web服务器共同承担客户对
-
Keepalived+HAProxy实现MySQL高可用负载均衡的配置
Keepalived 由于在生产环境使用了mysqlcluster,需要实现高可用负载均衡,这里提供了keepalived+haproxy来实现. keepalived主要功能是实现真实机器的故障隔离及负载均衡器间的失败切换.可在第3,4,5层交换.它通过VRRPv2(Virtual Router Redundancy Protocol) stack实现的. Layer3:Keepalived会定期向服务器群中的服务器.发送一个ICMP的数据包(既我们平时用的Ping程序),如果发现某台服务的
-
理解web服务器和数据库的负载均衡以及反向代理
但是若该网站平均每秒的请求是200多次,那么问题就来了:这已经是最好的web服务器了,我该怎么办?同样的情景也适用于数据库.要解决这种问题,就需要了解"负载均衡"的原理了. web服务器如何做负载均衡 为web服务器做负载均衡适用的的较多的方式是DNS重定向和反向代理,其他的方式原理也是很类似. 我们多次ping一下百度,会发现回复的IP会有所不同,例如第一次的结果为: 复制代码 代码如下: 正在 Ping baidu.com [220.181.111.86] 具有 32 字节的数据:
随机推荐
- 九种js弹出对话框的方法总结
- JS简单获取日期相差天数的方法
- JAVAWEB实现简单的商城项目(一)实例代码解析
- 通过示例分析Swift单例模式
- php使浏览器直接下载pdf文件的方法
- php生成图片验证码-附五种验证码
- Php Image Resize图片大小调整的函数代码
- 跟老齐学Python之list和str比较
- 浅谈C++中char型变量的地址输出
- 解析JavaScript中的不可见数据类型
- MVC4制作网站教程第二章 用户注册2.1
- js转html实体的方法
- 基于jQuery的可以控制左右滚动及自动滚动效果的代码
- js学习总结之DOM2兼容处理顺序问题的解决方法
- 使用JQuery FancyBox插件实现图片展示特效
- IE与FireFox的兼容性问题分析
- js实现省市联动效果的简单实例
- Jexus部署.Net Core项目
- asp 内置对象 Application 详解
- 修改Docker默认镜像和容器的存储位置的方法