采用软件nginx实现web服务器集群
nginx:软件负载均衡器 是高并发量http/反向代理服务器。实现windows下IIS的负载均衡
条件:2台服务器
1、cpu:Inter(R) 酷睿 i5 cpu 2.26GHz
内存:2G
系统:windows 7
IIS:IIS 7
nginx:nginx/windows-1.2.7
IP:192.168.2.123
环境:本地
2、cpu:Inter(R) 酷睿 i3 cpu 2.13GHz
内存:2G
系统:windows server 2003
IIS:IIS 6
nginx:nginx/windows-1.2.7
IP:192.168.2.124
环境:本地
注意:本次测试,软件nginx放在本地(192.168.2.123),也就是说放在域名绑定的那台服务器,这台服务器的IIS不能使用80端口,
因为等下nginx软件要使用80端口。
下载nginx的地址如下:
nginx下载:http://nginx.net/
本次测试使用的软件版本是:nginx/windows-1.2.7
下载解压到C:,把目录名改成nginx
时间步骤:
1、在本地192.168.2.123这台服务器IIS创建一个网站,使用端口号为8088。在远程192.168.2.124这台服务器IIS创建一个网站,使用端口号为8088。
两个网站都绑定相同的网站程序。
2、上面设置好两台web服务器的IIS后,下面配置nginx软件来做负载均衡集群。
打开C:\nginx\conf\nginx.conf
1.找到内容server{,在它的上面加入如下内容:
upstream ym.com{
server 192.168.2.123:8088;#真实服务器A(ym-PC)
server 192.168.2.124:8088;#真实服务器B(ym-PC)
}
(该内容是:负载切换使用的服务器网站IP)
2.找到        location / {
            root   html;
            index  index.html index.htm;
        }
把内容替换成如下:        location / {
proxy_pass http://ym.com;
proxy_redirect default;
        }
3.找到server{
listen 80;
server_name localhost;
}
把内容替换成如下:
server{#Nginx代理服务器
listen 80;
server_name 192.168.2.26;
}
可参考下面的配置操作:
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    upstream wgf.com{
    server 192.168.1.98;    #真实服务器A(sxwgf-PC)   
        server 192.168.1.99;    #真实服务器B(hzdk-vpc)
    }
    server {    #Nginx代理服务器
        listen       8088;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        proxy_pass  http://wgf.com;
        proxy_redirect  default;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
(这是监听访问域名所绑定的那台服务器的80端口的请求)
4.上述已经配置好了负载均衡。接下来就启动nginx软件,
进入命令提示符CMD,进入c:\nginx,输入nginx命令就可以运行。
停止nginx运行,输入nginx -s stop 即可
5.经过以上配置,现在就可以看下负载效果了。
在本地192.168.2.123这台服务器打开浏览器,输入http://192.168.2.123/,不断刷新,会不断把请求负载到两台服务器上。这样,网站的负载就成功了。
官方说nginx的并发数是50000,实际生产中是30000左右比较稳定。如果网站访问量非常大,可以专门用一台高配置的服务器跑nginx,其他web服务器跑
网站程序,如此负载,就没有太大问题,如果再不行,把网站的一些功能栏目做一个2级域名,2级域名同样做负载,这样就更强了。
nginx软件在linux上跑,性能比在windows上跑要好,所以做负载均衡的服务器,最好用linux跑nginx,而.net开发的网站放到windows服务器的IIS上。
注意:1、找到本地机器的\WINDOWS\system32\drivers\etc,修改hosts文件,添加192.168.2.123 www.ym123.com 注释掉#host
2、找到远程机器的\WINDOWS\system32\drivers\etc,修改hosts文件,添加192.168.2.124 www.ym123.com
3、
upstream ym.com{
server 192.168.2.123:8088;
server 192.168.2.124:8088;
}
server{#Nginx代理服务器
listen 80;
server_name http://www.ym123.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://ym.com/;
proxy_redirect default;
}
通过以上步骤,就可以使本地和远程机器通过域名访问做实验,皮面实际域名的绑定。
采用软件nginx实现web服务器集群的更多相关文章
- Web服务器集群搭建关键步骤纪要
		
前言:本文记述了搭建一个小型web服务器集群的过程,由于篇幅所限,系统.软件的安装和基本配置我这里就省略了,只记叙关键配置和脚本内容.假如各位朋友想了解各软件详细配置建议查阅官方文档. 一 需求分析: ...
 - Nginx详解-服务器集群
		
Nginx是什么 代理服务器:一般是指局域网内部的机器通过代理服务器发送请求到互联网上的服务器,代理服务器一般作用在客户端.应用比如:GoAgent,FQ神器. 一个完整的代理请求过程为:客户端首先 ...
 - Nginx+Tomcat+Terracotta的Web服务器集群实做
		
1.准备工作两个Linux服务器,可以用VMware装一个,然后配置好再克隆一个,修改IP即可.Host1:192.168.0.79Host2:192.168.0.80先配置好jdk1.6.0和tom ...
 - 使用简单的 5 个步骤设置 Web 服务器集群
		
通过在多个处理器之间分担工作负载并采用多种软件恢复技术,能够提供高度可用的环境并提高环境的总体 RAS(可靠性.可用性和可服务性).可以得到的好处包括:更快地从意外中断中恢复运行,以及将意外中断对终端 ...
 - web服务器集群(多台web服务器)后session如何同步和共享
		
在访问量上去以后,很多人会采用web集群的方式在满足逐渐增长的用户量.这时候就不得不面对一个问题,那就是在多个服务器下,每次请求都会因为负载均衡而分配到不同的服务器上.用户在登录服务器后,下一次请求被 ...
 - web服务器集群
		
概述 集群和分布式都是从集中式进化而来的.分布式和集群会相互合作的,同时的集群和分布式.在这里重点说说集群 集群是什么? 集群能提高单位时间内处理的任务数量,提升服务器性能 有多台服务器去处理任务,但 ...
 - web服务器集群session同步
		
在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,一个登录用户,一会是登录状态,一会又不是 ...
 - nginx的配置服务器集群,负载均衡
		
在server{}前配置服务器ip和端口号 如: upstream local_tomcat { local_tomcat为访问路径,在下面配置服务器ip及端口号,也可以分配权重(weight==?) ...
 - Linux服务器集群系统(四)--转
		
引用地址:http://www.linuxvirtualserver.org/zh/lvs4.html LVS集群的负载调度 章文嵩 (wensong@linux-vs.org) 2002 年 5 月 ...
 
随机推荐
- 程序员面试题精选100题(38)-输出1到最大的N位数[算法]
			
作者:何海涛 出处:http://zhedahht.blog.163.com/ 题目:输入数字n,按顺序输出从1最大的n位10进制数.比如输入3,则输出1.2.3一直到最大的3位数即999. 分析:这 ...
 - 安卓Handler机制的例子
			
Handler机制是实现线程之间通讯的一种很常见的方法,很多时候都会用到. package com.lab.activity; import android.app.Activity; import ...
 - java nio使用方法(转)
			
最近由于工作关系要做一些Java方面的开发,其中最重要的一块就是Java NIO(New I/O),尽管很早以前了解过一些,但并没有认真去看过它的实现原理,也没有机会在工作中使用,这次也好重新研究一下 ...
 - 当linux遇上多网卡时
			
我虚拟机有三个网卡,有两个在用,分别是不同的网段 eth4: 192.168.100.6/24 eth6: 192.168.137.131/24 但是默认系统把我的内部网络eth6设置为所有ip地址需 ...
 - [C#]判断字符串中是否包含中文
			
关键代码: /// <summary> /// 判断字符串中是否包含中文 /// </summary> /// <param name="str"&g ...
 - css中>,+,~的用法
			
1.>的用法 A>B选择A的所有子元素B(只选择一代) 2.+的用法 A+B选择紧随着A的兄弟元素B 3.~的用法 A~B选择位置处于A后面的所有兄弟元素B(不包含兄弟元素的子元素)
 - React Native在虚拟运行app时,报错RCTRootView not found,怎么解决?
			
报错: 解决方案:
 - 九度OJ1184二叉树
			
题目描述: 编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储).例如如下的先序遍历字符串:ABC##DE#G##F###其中“#”表示的是空格,空格字符代表空树 ...
 - php中的数组定义和使用
			
<?php //这个是一个php关于数组的例子,简要的说明了数组的基本使用 //定义一个字符串数组 $fruit = array(\"apple\",\"orang ...
 - 深入分析 Java 中的中文编码问题(转)
			
几种常见的编码格式 为什么要编码 不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的,这些符号也就是我们人类使用的语言 ...