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,以下是截图:
刷新一次后:
这样就起到了简单的轮询访问的效果,一定程度上起到了负载分流的作用,当然这个是最简单,更高级的用法正在研究中。。。谢谢阅读!