- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章采用软件负载均衡器实现web服务器集群(iis+nginx)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
我用nginx实现网站负载均衡测试的例子,windows下IIS做负载实测. 。
。
如果你的网站访问量(pv)越来越高,一台服务器已经没有办法承受流量压力,那就增多几台WEB服务器来做负载吧.
做网站负载可以买硬件设备来实现,我们公司用的是F5,不过价格就几十万到上百万,太贵了, 。
目前好多门户网站与大访问量的网站都在使用nginx做为HTTP服务器,所以nginx是非常优秀的,下面我亲手做这个负载测试吧.
软/硬件环境
。
(2台服务器) 第一台: CPU:Inter(R) 酷睿 i5 CPU 2.26GHz 。
内存:2G 系统:windows 7 IIS: IIS 7 nginx:nginx/Windows-0.8.22 IP:10.60.44.126 环境:本地 第二台: CPU:Inter(R) 酷睿 i3 CPU 2.13GHz 。
内存:2G 系统:windows Server 2003 IIS: IIS 6 IP:10.60.44.127 环境:远程 。
。
注意: 本次测试,软件nginx放在本地(10.60.44.126),也就是说放在域名绑定的那台服务器,这台服务器的IIS不能使用80端口,因为等下nginx软件要使用80这个端口。 下载nginx的地址如下: nginx下载:http://nginx.net/ 本次测试使用的版本下载:nginx/Windows-0.8.22 。
下载解压到C:,把目录名改成nginx 。
。
实践步骤:
第一:
在本地(10.60.44.126)这台服务器IIS创建一个网站,使用端口为808,如下图:
。
IIS 网站绑定设置图 。
第二:
在远程10.60.44.127的IIS创建一个网站,使用端口为808,如下图:
。
远程IIS绑定设置图 。
注意:第一步和第二步绑定相同的网站程序! 。
第三:
好了,以上已经设置好两台服务器的IIS了,下面配置nginx软件来实现网站负载均衡器,打开如下文件:
C:\nginx\conf\nginx.conf 。
1、找到内容server { 。
在这上面加入如下内容:
upstream chenlu.com { server 10.60.44.126:808; server 10.60.44.127:808; } 。
(这是负载切换使用的服务器网站IP) 。
2、找到location / { root html; index index.html index.htm; } 。
把内容更改如下:
location / { proxy_pass http://chenlu.com/; proxy_redirect default; } 。
3、找到server { listen 80; server_name localhost,
把内容改成如下:
server { listen 80; server_name 10.60.44.126,
(这是监听访问域名绑定那台服务器80端口的请求) 。
好,在这里就这么简单配置好了,下面看下以上3步配置的图:
。
负载均衡器配置图 。
第四:
都配置好了,下面启动nginx这软件 。
进入命令提示符CMD,进入c:\nginx>,输入nginx命令,如下图:
。
。
启动nginx 。
这时候,系统进程有两个nginx.exe进程,如下图
系统nginx进程 。
停止nginx运行输入nginx -s stop 即可 。
。
第五:
经过以上的配置,现在我们看下负载效果:
在本地(10.60.44.126)这服务器打开IE,输入:http://10.60.44.126/ 。
第一次打开网站的结果图:
。
第一次运行网站图 。
再刷新一下网页,出现的结果图:
。
再次访问网站图 。
很好,网站已经负载成功.
经过这次测试,实现网站负载再也不是难事了。也不用购买非常贵的硬件设备了。网上介绍说nginx软件可以处理并发上万,所以绝对是个非常不错的选择.
如果网站访问量非常大,可以专门用一台服务器跑nginx,其它服务器跑网站程序(几台服务器的程序都是一样的),这样负载就没有太大问题,如果再不行,把网站一些栏目做一个2级域名,2级域名同样做负载,这样更厉害了吧.
nginx软件在linux上跑性能比在windows上跑要好,所以做负载可以用linux跑nginx,.net开发的网站放到windows服务器IIS上.
注意
1找到本地机器的 \WINDOWS\system32\drivers\etc,修改hosts文件,添加10.60.44.126 www.chenlulouis123456.com 注释掉#host 。
2 找到远程机器的 \WINDOWS\system32\drivers\etc,修改hosts文件 10.60.44.127 www.chenlulouis123456.com 。
3. 。
。
。
upstream chenlu.com { server 10.60.44.126:808; server 10.60.44.127:808; } server { listen 80; server_name http://www.chenlu123456.com/,
#charset koi8-r,
#access_log logs/host.access.log main,
location / { proxy_pass http://chenlu.com/; proxy_redirect default; } 。
进过以上步骤,就可以使本地和远程机器通过域名访问做实验,避免实际域名绑定。 。
。
希望大家喜欢哈! 。
最后此篇关于采用软件负载均衡器实现web服务器集群(iis+nginx)的文章就讲到这里了,如果你想了解更多关于采用软件负载均衡器实现web服务器集群(iis+nginx)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
在 Web 应用程序架构设计期间,我必须从概念上计算我的服务器之一可以服务多少个当前客户端。然后我可以预算它。 那么,有什么公式可以遵循吗?或者,你如何计算这个?或者,通常,一个 httpd/tomc
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是
我正在使用 Angular 5,我正在尝试在加载 div 的背景图像时获取加载图标。 如果它是一个普通的 img,我对此没有问题,但如果我尝试将它作为背景,它就不起作用。 这里是一些示例代码 app.
我们怎么知道我们的程序在 CPU 上有多少负载? 我尝试使用 htop 找到它。但是 htop 不会给 cpu 负载。它实际上给出了我程序的 cpu 利用率(使用 pid)。 我正在使用 C 编程,L
我们发现从Spark 1.3到当前的Spark 2.0.1以来,从Oracle数据库使用Spark的API加载数据一直很慢。典型的代码在Java中是这样的: Map options =
我有时会收到 mnesia overloaded主要使用时的错误消息 async_dirty查询和 ram_copies表。所以为了了解发生了什么,我想获得更多关于 mnesia 状态的信息,例如每秒
对于通常使用很少 CPU 的程序来说,内核 CPU 非常高。 Linux 机器在状态之间交替。大多数时候,程序使用低 CPU 正常执行。在 CPU“激增”期间,程序使用 100% 可用 CPU 使用高
我正在使用 Raspberry Pi 2 来路由 wifi-eth 连接。因此,从 eth 方面来看,我有一台可以使用 Pi wifi 连接到互联网的计算机。在 Raspberry 上我启动 htop
基本上我有一个网页,其中有一个 iframe 可以从不同的域加载另一个网页。它移动得很慢,我想证明整个页面很慢只是因为 iframe 内的页面。 有什么方法可以测量总页面负载以及总页面负载中有多少%来
我们有一个基于 Spring 的应用程序,它充当使用其他 Rest API 的编排层。我只想测试这个组件的性能,而不测试正在使用的下游 api。 我正在寻找有关如何完成此操作的任何架构建议? 当前的方
我正在学习 hibernate 。为了进行测试,我使用无效 key 调用了 session.load 。当我在调试器(JB Idea)中跨过该行后,没有任何反应 - 我预计会得到 ObjectNotF
我正在开发一个小型的待办事项 PHP 应用程序。我正在使用 jQuery 构建 HTML。其中一个是一个按钮,用于启动一个模式,允许用户编辑该项目。我很好奇加载数据时更好的方法是什么: 1) 在初始加
我尝试在 twitch 播放器中使用 angular 作为覆盖标记。 我将 ng-repear 与(键,值)结合使用。 //player is here 设置是一个全局对象。但是当我尝试加载页面
我即将了解 C 语言中的特定进程如何在特定时间范围内加载 CPU。该进程可能会在运行时切换处理器核心,因此我也需要处理这个问题。 CPU为ARM处理器。 我研究了从标准顶部获取负载的不同方法,perf
这个问题在这里已经有了答案: XMLHttpRequest Origin null is not allowed Access-Control-Allow-Origin for file:/// t
您好,我正在用 Java 开发负载平衡算法。在我的系统中将有一个主节点和 n 个从节点。主节点将接收查询分发给它的从节点。但是在将查询分发到其从节点之一之前,我想测量从节点中的当前负载,以检查特定从节
我正在渲染由大约 50 万个三角形组成的相当重的对象。我使用 opengl 显示列表,在渲染方法中只调用 glCallList。我认为一旦图形基元被编译成显示列表,cpu 的工作就完成了,它只是告诉
我正在尝试加密 Sipdroid,为此我必须在 RTP 数据包获得编码的音频负载后对其进行加密。我在 RTP 数据包类中使用这个函数: public byte[] getPayload() {
我正在尝试解析以下 JSON 负载: { "results":[ [ 298.648132, 280.68692, 356.54
在动画期间 cpu 负载非常高(高达 75%) 是否有优化代码以降低 CPU 负载的方法? 我的代码: ImageView myImageView = (ImageView)findViewById(
我是一名优秀的程序员,十分优秀!