随笔- 41 文章- 0 评论- 417

Windows上搭个Nginx集群环境玩玩

 

话说nginx是一个非常NB的高性能Web和反向代理服务器,传说新浪、迅雷等大网站都在用。以前也就听大牛们讲讲,没什么太深刻的概念,今天终于自己亲手操刀实践了一把,顺便把过程记录了下来分享给大家,这个很基础,就用轮询的方式来做一个负载均衡,最简单的配置了,今后再去深入了解它。

对了,不知道nginx是什么的同学就先自己去捣鼓一下,回头如果有兴趣可以再来看下去,给几个链接:

http://zh.wikipedia.org/zh/Nginx

http://baike.baidu.com/view/926025.htm

由于我linux实在是用不溜,所以就在windows搞搞了。

一、在windows上安装nginx

1、从这里下载nginx的windows版本

2、把压缩文件解压至c盘根目录,并将文件夹重命名成nginx

3、在conf目录下的nginx.conf文件中,指定一个不冲突的端口号,这里测试用8088,代码段如下:

server {
listen
8088;
server_name localhost;
}

4、打开cmd命令行,运行如下命令:

>cd c:\nginx
>nginx

好了,试试吧,打开浏览器,输入127.0.0.1:8088,如果出现下图,那就说明nginx服务器已经成功安装并已经在跑了。

二、简单配置一下,搞个负载均衡集群测试环境

这里我就只有一台电脑,2G的内存,由于不做性能测试,就用虚拟机算了,虚拟机我用的是VMware,下面描述一下整个测试环境吧:

*物理主机一台,CPU:core2 T5750,2G内存,Windows 7操作系统,IP地址192.168.1.98,主机名sxwgf-PC,该主机用来当作Nginx代理服务器(P)和一台Web服务器(A)

*在物理主机中开一台虚拟主机,Windows Server 2003操作系统,IP地址192.168.1.99,主机名hzdk-vpc,该主机用来当作另一台Web服务器(B)

1、打开conf目录下的nginx.conf,具体配置代码如下:

复制代码
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;
}

}
}
复制代码

2、重启一下nginx吧,你可以在任务管理器中将原来的两个nginx进程结束然后按前面安装时的方法启动nginx,也可以直接输入命令:nginx -s reload来重启

3、准备两个完全一样的ASP.NET测试网站程序,分别放在主机A和虚拟主机B的IIS中,输入对应的ip地址试一下吧:

输入192.168.1.98

输入192.168.1.99

最后我们再来访问一下我们的nginx代理服务器,看看他能不能让我们访问到真实的服务器A和B,访问结果是每刷新一次就在A和B之间切换,好像我们在轮次访问A和B一样,但我们表面上都是访问的代理服务器127.0.0.1:8088,以下是截图:

刷新一次后:

这样就起到了简单的轮询访问的效果,一定程度上起到了负载分流的作用,当然这个是最简单,更高级的用法正在研究中。。。谢谢阅读!