原来一直以为nginx只能在Linux下搭建,最近查了些资料才恍然大悟,Windows下其实也可以跑nginx。当你的网站访问量越来越高的时候,一台服务器已经没有办法承受流量压力,后果可想而知,怎么办呢?那就增加几台 服务器来做负载吧。但当下的硬件设施又是贵得离谱,比如F5,所以这种情况下,免费的nginx成了我们不错的选择,nginx目前好多门户网站与大访问量的网站都在使用做为HTTP服务器,所以nginx是相当优秀的……
实验环境:(2台服务器)
第一台:
    系统:Win2003
    nginx:nginx/Windows-0.8.32
    IP:192.168.0.51
    环境:本地
第二台:
    系统:Win2003
    IP:192.168.0.52
    环境:远程
说明:
 本次测试,软件nginx放在本地(192.168.0.51),也就是说放在域名绑定的那台服务器,这台服务器的IIS不能使用80端口,因为等一下nginx软件要使用80这个端口。(为了方便,我将本机的hosts文件添加了我要测试的域名  192.168.0.51    www.g)
下载nginx的地址如下:
nginx下载:nginx/
下载解压到C:\,把目录名改成nginx
一切准备就绪,开始实验:
No.1
        在本地(192.168.0.51)这台服务器IIS创建一个网站,使用端口为808,如下图:
IIS 网站绑定设置图
No.2
      在远程192.168.0.52的IIS创建一个网站,使用端口为80,如下图:
No.3
好了,以上已经设置好两台服务器的IIS了,下面配置nginx软件来实现网站负载均衡,打开如下文件:
C:\nginx\f
1、到内容server {
在它的上面加入如下内容:
upstream  www.g { 
  server  192.168.0.51:808;
  server  192.168.0.52:80;
    }
(这是负载切换使用的服务器网站IP)
2、到location / {
            root  html;
            index  index.html index.htm;
        }
把内容更改如下:
location / {
            proxy_pass www.g;
            proxy_redirect default;
        }
3、到server {
        listen      80;
        server_name  localhost;
把内容改成如下:
server {
        listen      80;
        server_name  192.168.0.51;
(这是监听访问域名绑定那台服务器80端口的请求)
好,在这里就这么简单配置好了,下面看下以上3步配置的图:
负载配置图
No.4
      都配置好了,下面启动nginx这软件
      进入命令提示符CMD,进入c:\nginx>,输入nginx命令,如下图:
启动nginx
这时候,系统进程有两个进程,如下图:
系统nginx进程
(停止nginx运行输入nginx -s stop 即可)
No.5
      经过以上的配置,现在我们看下负载效果:
      在本地(192.168.0.51)这服务器打开IE,输入:192.168.0.51
      第一次打开网站的结果:
     
第一次访问网站图
       
刷新一下网页,出现的结果:
再次访问网站图
OK,测试成功o(∩_∩)o
经过这次测试,可见网站的负载平衡并不是难事。也没有必要另外购买硬件设备。补充一点,nginx软件在linux上跑性能比在windows上跑要好,所以做负载可以用linux跑nginx,开发的网站放到windows服务器IIS上。
如果网站访问量非常大,可以专门用一台服务器跑nginx,其它服务器跑网站程序(几台服务器的程序都是一样的),这样负载就没有太大问题,如果再不行,把网站一些栏目做一个2级域名,2级域名同样做负载,这样就ok了。
nginx负载均衡基于iphash的session黏贴
web server 2010-10-17 18:07:43 阅读30 评论0  字号:大中小 订阅
nginx可以根据客户端IP进行负载均衡,在upstream里设置ip_hash,就可以针对同一个C类地址段中的客户端选择同一个后端服务器,除非那个后端服务器宕了才会换一个。
nginx的upstream目前支持的5种方式的分配
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
upstream backserver {
server 192.168.0.14;nginx部署前端项目
server 192.168.0.15;
}
2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
upstream backserver {
server 192.168.0.14 weight=10;
server 192.168.0.15 weight=10;
}
3、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
upstream backserver {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backserver {
server server1;
server server2;
fair;
}
5、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。