之前简单了解了一下nginx的反向代理与负载均衡。
大家都知道,我们要访问国外的指定网站,通过代理作为中间件,访问目标网站的模式是代理,
而反向代理就是我们访问一个地址,这个地址是用户认为的目标地址,但实际上nginx内部通过这个地址又访问了别的地址(例如内部某ip),用户不知道这个实际的地址。
而软负载均衡,则通过nginx向不同的web应用服务器发出请求,减缓web应用服务器压力。
下面是一个简单的轮询实现。
upstream myServer{ server 127.0.0.1:9000; server 127.0.0.1:9001; server 127.0.0.1:9002; } #负载均衡访问服务器 server { listen 80; server_name test.hry.com; #charset koi8-r; #access_log logs/host.access.log main; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { #指向负载均衡配置 proxy_pass http://myServer; proxy_connect_timeout 600; proxy_read_timeout 600; } } #1 server { listen 9000; server_name a.com; #charset koi8-r; #access_log logs/host.access.log main; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { proxy_pass http://www.sina.com; proxy_connect_timeout 600; proxy_read_timeout 600; } } #2 server { listen 9001; server_name a.com; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { proxy_pass http://www.jd.com; proxy_connect_timeout 600; proxy_read_timeout 600; } } #3 server { listen 9002; server_name a.com; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { proxy_pass http://www.baidu.com; proxy_connect_timeout 600; proxy_read_timeout 600; } }
同时我们也可做加权轮询,
通过配置 weight=n 来添加权值。