您的位置:首页 > 运维架构 > Nginx

Nginx + IIS 配置,实现负载均衡

2015-11-05 21:15 567 查看
当你的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的地址。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: