windows配置nginx实现负载均衡集群
一、windows上安装nginx
1、下载nginx的windows版本http://nginx.org/en/download.html
2、把压缩文件解压至c盘根目录,并将文件夹重命名成nginx
3、在conf目录下的nginx.conf文件中,指定一个不冲突的端口号,这里测试用8088,代码段如下:
server {
listen 8090;
server_name localhost;
}
server {
listen 8090;
server_name localhost;
}
4、打开cmd命令行,运行如下命令:start nginx.exe
1. >cd c:\nginx
2. >nginx
好了,试试吧,打开浏览器,输入127.0.0.1:8090,如果出现下图,那就说明nginx服务器已经成功安装.
二、配置nginx负载均衡
1、打开conf目录下的nginx.conf,具体配置代码如下:
#nginx进程,一般设置为和cpu核数一样
worker_processes 1;
#全局错误日志及PID文件
error_log logs/error.log;
pid logs/nginx.pid;
#工作模式及连接数上限
events {
use epoll; #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能
worker_connections 1024;#单个后台worker process进程的最大并发链接数
# multi_accept on;
}
#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
include mime.types;#文件扩展名与类型映射表
default_type application/octet-stream;#默认文件类型
access_log logs/access.log; #设定日志格式
sendfile on; #开启高效传输模式
#连接超时时间 单位是秒
keepalive_timeout 65;
tcp_nodelay on;
#开启gzip压缩
gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
#设定请求缓冲
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;
#设定负载均衡的服务器列表
upstream leizi { #weigth参数表示权值,权值越高被分配到的几率越大
server 10.204.3.223:8090 weight=1 max_fails=2 fail_timeout=30s;#真实服务器A
server 10.204.3.20:8090 weight=1 max_fails=2 fail_timeout=30s;#真实服务器B #这里是在30s内尝试2次失败即认为主机不可用!
}
#基于域名的虚拟主机
server {#Nginx代理服务器
listen 8090;
server_name localhost;
access_log logs/localhost.access.log main;#设定本虚拟主机的访问日志
#默认请求
location / {
root html; #站点根目录,即网站程序存放目录
index index.html index.htm index.php; #首页排序
proxy_pass http://leizi; #请求转向leizi定义的服务器列表
proxy_redirect default;
}
# 定义错误提示页面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
#静态文件,nginx自己处理
location ~ ^/(images|javascript|js|css|flash|media|static)/ {
root html;
#过期30天,静态文件不怎么更新,过期可以设大一点,如果频繁更新,则可以设置得小一点。
expires 30d;
}
#location 标签,根目录下的.svn目录禁止访问
location ~ /.svn/ {
deny all;
}
#设定查看Nginx状态的地址
location /NginxStatus {
stub_status on;
access_log on;
auth_basic "NginxStatus";
auth_basic_user_file conf/htpasswd;
}
}
}
#nginx进程,一般设置为和cpu核数一样
worker_processes 1;
#全局错误日志及PID文件
error_log logs/error.log;
pid logs/nginx.pid;
#工作模式及连接数上限
events {
use epoll; #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能
worker_connections 1024;#单个后台worker process进程的最大并发链接数
# multi_accept on;
}
#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
include mime.types;#文件扩展名与类型映射表
default_type application/octet-stream;#默认文件类型
access_log logs/access.log; #设定日志格式
sendfile on; #开启高效传输模式
#连接超时时间 单位是秒
keepalive_timeout 65;
tcp_nodelay on;
#开启gzip压缩
gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
#设定请求缓冲
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;
#设定负载均衡的服务器列表
upstream leizi { #weigth参数表示权值,权值越高被分配到的几率越大
server 10.204.3.223:8090 weight=1 max_fails=2 fail_timeout=30s;#真实服务器A
server 10.204.3.20:8090 weight=1 max_fails=2 fail_timeout=30s;#真实服务器B #这里是在30s内尝试2次失败即认为主机不可用!
}
#基于域名的虚拟主机
server {#Nginx代理服务器
listen 8090;
server_name localhost;
access_log logs/localhost.access.log main;#设定本虚拟主机的访问日志
#默认请求
location / {
root html; #站点根目录,即网站程序存放目录
index index.html index.htm index.php; #首页排序
proxy_pass http://leizi; #请求转向leizi定义的服务器列表
proxy_redirect default;
}
# 定义错误提示页面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
#静态文件,nginx自己处理
location ~ ^/(images|javascript|js|css|flash|media|static)/ {
root html;
#过期30天,静态文件不怎么更新,过期可以设大一点,如果频繁更新,则可以设置得小一点。
expires 30d;
}
#location 标签,根目录下的.svn目录禁止访问
location ~ /.svn/ {
deny all;
}
#设定查看Nginx状态的地址
location /NginxStatus {
stub_status on;
access_log on;
auth_basic "NginxStatus";
auth_basic_user_file conf/htpasswd;
}
}
}
2、重启一下nginx吧,你可以在任务管理器中将原来的两个nginx进程结束然后按前面安装时的方法启动nginx,也可以直接输入命令:nginx -s reload来重启
三、部署网站
1、准备两个完全一样的ASP.NET测试网站程序,
2、分别放在leizi服务器列表的IIS中,输入对应的ip地址试一下是否可用访问。
3、访问代理服务器 127.0.0.1:8090 访问结果是每刷新一次就在leizi列表之间切换。
四、总结:
访问代理服务器 127.0.0.1:8090 访问结果是每刷新一次就在leizi列表之间切换 这样就起到了简单的轮询访问的效果,一定程度上起到了负载分流的作用至此,windows配置nginx实现负载均衡集群已经完成。