当你的Web应用程序访问量大的时候,一台服务器可能会因为压力过大而无法处理所有的请求。此时,可以增加服务器,采用负载均衡来分担所有的请求。关于Nginx的作用,自行百度了解。总之,在Windows平台下,你可以用它和IIS来实现你的Web应用程序的负载均衡。简单说,就是它会根据几台服务器的空闲程度,将接收到的Web请求分发到相应的服务器进行处理(当然它会选择比较空闲的服务器来处理当前的请求,否则用它有什么意义呢)。接下来,采用两台虚拟机,创建简单的ASP.Net应用程序,使用Nginx+IIS实现负载均衡。

一、环境

Client: Win7 X64, Visual Studio2010, IP:59.78.184.11

Server1: 虚拟机Win7 X64, IIS,Nginx IP:59.78.184.151 开放端口80(Nginx)、8080(IISweb)

Server2:虚拟机Win7 X64, IIS, IP:59.78.184.136 开放端口80(IISWeb)

二、创建ASP.Net应用程序,并发布至两台Server上

VS中创建ASP.Net应用程序,为了测试负载均衡效果,我们只在应用程序中获取当前处理Web请求的Server名。在项目中的Default.aspx.cs文件中写如下代码,Default.aspx页面中放置一个Label控件。

  protected void Page_Load(object sender, EventArgs e)
{
HostNameLbl.Text = "UserHostName:" + Request.UserHostName.ToString() + "<br/>UserHostAddress:" + Request.UserHostAddress.ToString()
+ "<br/>Url.Host:" + Request.Url.Host.ToString() + "<br/>Server:" + Server.MachineName.ToString(); ;
}

接着,生成项目,将项目发布至已经准备好的两台Server中。在Server1的IIS上,创建站点,将路径指向该项目,并将8080端口分配给该站点。(注意,默认站点的端口为80,因为Server1一会需要将80端口给Nginx,所以我们重新给站点一个端口)。防火墙上将8080端口打开。同样的步骤,在Server2上再走一遍(Server2上直接将80端口给新建的站点就可以了)。

三、安装Nginx并进行配置

官网上下载一个Nginx,在Server1的C盘中解压。找到conf文件夹,打开里面的nginx.conf文件。找到http块,往下需要配置的地方:

  1. upstream localhost块,将需要监听的两台服务器IP地址配上去
  2. server块。Nginx监听本地端口配置上
  3. location块。
http {
include mime.types;
default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on;
#tcp_nopush on; #keepalive_timeout 0;
keepalive_timeout 65; #gzip on; upstream localhost{
server 59.78.184.151:8080;
server 59.78.184.136:80;
} server {
listen 80;
server_name 59.78.184.151; #charset koi8-r; #access_log logs/host.access.log main; #location / {
# root html;
# index index.html index.htm;
#}
#my own location
location / {
proxy_pass http://localhost;
proxy_redirect default;
}

接着启动nginx。

启动:打开cmd,进入Nginx目录,输入nginx.exe回车。此时查看任务管理器中,有两个nginx进程即启动成功。

关闭:打开cmd,进入Nginx目录,输入nginx.exe –s stop回车,即可关闭nginx。如果在此你修改了配置文件,导致nginx无法关闭。cmd上会提示配置文件的哪一行出错,可以追踪到该行去进行相应的修改。

在浏览器中访问我们的应用程序。注意观察Server的值是WIN-KKRTSU3Q756

刷新浏览器,再次查看结果,如下:此时的Server编程了WIN-VM3BU2IPGM4。然而对于用户来说,我并没有察觉到,访问的依旧是Server1的地址。

Nginx + IIS 配置,实现负载均衡的更多相关文章

  1. 使用nginx+docker配置https负载均衡

    了解Docker Docker是一个golang编写的开源轻量级的.可移植的.自给自足的容器,Docker主要应用在以下场景: web应用的自动化打包和发布: 自动化测试和持续集成.发布: 在服务型环 ...

  2. Nginx做NodeJS应用负载均衡配置实例

    这篇文章主要介绍了Nginx做NodeJS应用负载均衡配置实例,本文直接给出配置实例,需要的朋友可以参考下. 负载均衡可以把用户的请求分摊到多个服务器上进行处理,从而实现了对海量用户的访问支持.负载均 ...

  3. Nginx 部署、反向代理配置、负载均衡

    Nginx 部署.反向代理配置.负载均衡 最近我们的angular项目部署,我们采用的的是Nginx,下面对Nginx做一个简单的介绍. 为什么选择Nginx 轻:相比于Apache,同样的web服务 ...

  4. Linux 笔记 - 第二十章 配置 Nginx 反向代理和负载均衡

    一.简介 由于 Nginx 的反向代理和负载均衡功能经常被提及,所以将这两个功能单独提出来进行讲解. Nginx 其实仅仅是作为 Nginx Proxy 反向代理使用的,因为这个反向代理功能表现的效果 ...

  5. 初识Nginx,简单配置实现负载均衡(ubuntu + Nginx + tomcat)

    工作需要,研究了一下Nginx的反向代理实现负载均衡,网上搜了一下教程,大多含糊不清,所以写下这个,权当总结,方便日后查看,如果能恰好帮到一些需要的人,那就更好了 先说需求,域名指向搭建了Nginx的 ...

  6. Nginx配置及负载均衡

    转载:http://www.cnblogs.com/jingmoxukong/p/5945200.html nginx简易教程   目录 Nginx  概述  安装与使用  nginx 配置实战  参 ...

  7. Nginx反向代理实现负载均衡配置图解

    Nginx反向代理实现负载均衡配置图解 [导读] 负载均衡配置是超大型机器需要考虑的一些问题,同时也是数据安全的一种做法,下面我来介绍在nginx中反向代理 负载均衡配置图解,大家可参考本文章来操作. ...

  8. Nginx代理功能与负载均衡详解

    序言 Nginx的代理功能与负载均衡功能是最常被用到的,关于nginx的基本语法常识与配置已在上篇文章中有说明,这篇就开门见山,先描述一些关于代理功能的配置,再说明负载均衡详细. Nginx代理服务的 ...

  9. Nginx 反向代理与负载均衡详解

    序言 Nginx的代理功能与负载均衡功能是最常被用到的,关于nginx的基本语法常识与配置已在Nginx 配置详解中有说明,这篇就开门见山,先描述一些关于代理功能的配置,再说明负载均衡详细. Ngin ...

  10. nginx反向代理与负载均衡讲解

    Nginx的代理功能与负载均衡功能是最常被用到的,关于nginx的基本语法常识与配置已在上篇文章中有说明,这篇就开门见山,先描述一些关于代理功能的配置,再说明负载均衡详细. Nginx代理服务的配置说 ...

随机推荐

  1. Android-IA Power Manager (S3)

    Sleep and wake up

  2. 教你怎么去一个APP的JSON数据,你懂的

    今天闲着没事.谁让我今天是光棍节呢,算给大家一个福利.没事逛着应用市场.想找个应用高仿下,突然发现一个应用竟然跟我一个名字尼玛,尼玛应用界面做的非常easy.我认为应该不难. 惯性操作想去破解APK. ...

  3. a标签中调用js的几种方法

    1. a href="javascript:js_method();" 这是我们平台上常用的方法,但是这种方法在传递this等参数的时候很容易出问题,而且javascript:协议 ...

  4. Java Executor 框架

    Java Executor 框架 Executor框架是指java5中引入的一系列并发库中与executor相关的功能类,包括Executor.Executors. ExecutorService.C ...

  5. 设计模式之迭代器模式(Iterator)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于怎样创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...

  6. 【原创】leetCodeOj --- Min Stack 解题报告

    题目地址: https://oj.leetcode.com/problems/min-stack/ 题目内容: Design a stack that supports push, pop, top, ...

  7. 关于VCL的编写 (一) 如何编写自己的VCL控件

    如何编写自己的VCL控件 用过Delphi的朋友们,大概对Delphi的最喜欢Delphi的不是他的强类型的pascal语法,而是强大的VCL控件,本人就是一位VCL控件的爱好者. VCL控件的开源, ...

  8. 7、Cocos2dx 3.0游戏开发找小三之3.0版本号的代码风格

    重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27691337 Cocos2d-x代码风格 前面我们已 ...

  9. 微渠道发展 BAE交通运输平台和java呼声,微信mysql数据库开发实例 --图文开发教程

    持续更新 BAE java开展mysql数据库 图文教程 BAE java语言发展mysql源码下载: 目前微信的发展.BAE开展.java开展.mysql教程开发非常,的介绍基于BAE平台.java ...

  10. Directx11学习笔记【二十二】 用高度图实现地形

    本文由zhangbaochong原创,转载请注明出处http://www.cnblogs.com/zhangbaochong/p/5827714.html 在前面我们曾经实现过简单的地形(Direct ...