Nginx + IIS 配置,实现负载均衡
当你的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块,往下需要配置的地方:
- upstream localhost块,将需要监听的两台服务器IP地址配上去
- server块。Nginx监听本地端口配置上
- 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 配置,实现负载均衡的更多相关文章
- 使用nginx+docker配置https负载均衡
了解Docker Docker是一个golang编写的开源轻量级的.可移植的.自给自足的容器,Docker主要应用在以下场景: web应用的自动化打包和发布: 自动化测试和持续集成.发布: 在服务型环 ...
- Nginx做NodeJS应用负载均衡配置实例
这篇文章主要介绍了Nginx做NodeJS应用负载均衡配置实例,本文直接给出配置实例,需要的朋友可以参考下. 负载均衡可以把用户的请求分摊到多个服务器上进行处理,从而实现了对海量用户的访问支持.负载均 ...
- Nginx 部署、反向代理配置、负载均衡
Nginx 部署.反向代理配置.负载均衡 最近我们的angular项目部署,我们采用的的是Nginx,下面对Nginx做一个简单的介绍. 为什么选择Nginx 轻:相比于Apache,同样的web服务 ...
- Linux 笔记 - 第二十章 配置 Nginx 反向代理和负载均衡
一.简介 由于 Nginx 的反向代理和负载均衡功能经常被提及,所以将这两个功能单独提出来进行讲解. Nginx 其实仅仅是作为 Nginx Proxy 反向代理使用的,因为这个反向代理功能表现的效果 ...
- 初识Nginx,简单配置实现负载均衡(ubuntu + Nginx + tomcat)
工作需要,研究了一下Nginx的反向代理实现负载均衡,网上搜了一下教程,大多含糊不清,所以写下这个,权当总结,方便日后查看,如果能恰好帮到一些需要的人,那就更好了 先说需求,域名指向搭建了Nginx的 ...
- Nginx配置及负载均衡
转载:http://www.cnblogs.com/jingmoxukong/p/5945200.html nginx简易教程 目录 Nginx 概述 安装与使用 nginx 配置实战 参 ...
- Nginx反向代理实现负载均衡配置图解
Nginx反向代理实现负载均衡配置图解 [导读] 负载均衡配置是超大型机器需要考虑的一些问题,同时也是数据安全的一种做法,下面我来介绍在nginx中反向代理 负载均衡配置图解,大家可参考本文章来操作. ...
- Nginx代理功能与负载均衡详解
序言 Nginx的代理功能与负载均衡功能是最常被用到的,关于nginx的基本语法常识与配置已在上篇文章中有说明,这篇就开门见山,先描述一些关于代理功能的配置,再说明负载均衡详细. Nginx代理服务的 ...
- Nginx 反向代理与负载均衡详解
序言 Nginx的代理功能与负载均衡功能是最常被用到的,关于nginx的基本语法常识与配置已在Nginx 配置详解中有说明,这篇就开门见山,先描述一些关于代理功能的配置,再说明负载均衡详细. Ngin ...
- nginx反向代理与负载均衡讲解
Nginx的代理功能与负载均衡功能是最常被用到的,关于nginx的基本语法常识与配置已在上篇文章中有说明,这篇就开门见山,先描述一些关于代理功能的配置,再说明负载均衡详细. Nginx代理服务的配置说 ...
随机推荐
- linux管理员
sudo password 添加管理员用户,设置其密码. exit 退出管理员.
- winfrom 倒计时控件
最近在做一个快递柜项目,要求在用户没有操作的时间到了一分钟,自动返回主页,我于是封装了一个倒计时控件,废话少说,直接上代码 public partial class RemainingTimeUC : ...
- 世纪互联、微软Azure与无穷小微积分
今年9月25日,世纪互联正式开通微软Azure商用服务,有感. 我是世纪互联创业历程的见证人(之中的一个),现在看到世纪互联推出微软Azure公有云的商用服务,心 ...
- 高性能 TCP & UDP 通信框架 HP-Socket v3.2.2 正式公布
HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包括服务端组件.client组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#. ...
- Wind River Linux 6 Security Profile
2692407267@qq.com,很多其它内容请关注http://user.qzone.qq.com/2692407267 Wind River Linux 6 Security Profile
- [Unity3D]转让Android介面
简单介绍 有一些手机功能.Unity没有提供对应的接口.比如震动,比如不锁屏,比如GPS.比如... 有太多的特殊功能Unity都没有提供接口.这时候,我们就须要通过使用Android原生的ADT编辑 ...
- C语言中main函数的參数具体解释
main函数的定义形式 main函数能够不带參数,也能够带參数,这个參数能够觉得是 main函数的形式參数.C语言规定main函数的參数仅仅能有两个,习惯上这两个參数写为argc和ar ...
- hadoop-ha组态
HADOOP HA组态 hadoop2.x的ha组态.这份文件是在那里的描述中hdfs与yarn的ha组态. 这份文件的假设是zk它已被安装并配置,事实上,任何安装. hdfs ha组态 首先.配置c ...
- springmvc如何访问静态文件,例如jpg,js,css
你怎么DispatcherServlet拦截"*.do"这有一个后缀URL.就不存在訪问不到静态资源的问题. 假设你的DispatcherServlet拦截"/&qu ...
- Caching-缓存架构与源码分析
Caching-缓存架构与源码分析 首先奉献caching的开源地址[微软源码] 1.工程架构 为了提高程序效率,我们经常将一些不频繁修改,但是使用了还很大的数据进行缓存.尤其是互联网产品,缓存可以说 ...