采用软件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;
}
通过以上步骤,就可以使本地和远程机器通过域名访问做实验,皮面实际域名的绑定。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)