vlambda博客
学习文章列表

nginx实现反向代理和负载均衡

实现反向代理,为具体形象,这里举个实例。即我们要实现的效果是,通过浏览器访问http://www.88.com/,进入tomact首页。


为实现以上效果,首先需要在本地的host文件修改配置,文件路径在:C:\Windows\System32\drivers\etc

修改内容为:

127.0.0.1 www.88.com


然后启动本地的tomact,访问路径就可以为:http://www.88.com:8080/


可以看到本地的虚拟域名生效了。

最后在nginx的配置文件中修改配置,增加一个server块,达到反向代理的效果。

server { listen 80; server_name www.88.com; location / { root html; # Nginx反向代理配置即真实ip+端口 proxy_pass http://127.0.0.1:8080;  index home.html index.htm; }}


然后再访问,端口号就由8080改为80了。


这里我们只改变的端口号,但是一样可以确定达到了反向代理的效果。

配置负载均衡:默认轮询。

http { #负载均衡配置,即真实访问ip+端口 upstream myapp {  server localhost:8080 weight=3;  server localhost:8081 weight=1;  } server { listen 80; server_name www.88.com; location / { root html; #反向代理即真实ip+端口,这里引用负载均衡配置 proxy_pass http://myapp;  index home.html index.htm; } }}


负载均衡策略:

  1. 轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

  2. 权重(weight):weight代表权重,默认为1,权重越高被分配的客户端几率越大。

upstream myapp {  server localhost:8080 weight=3;  server localhost:8081 weight=1; }


  1. ip_hash:每个请求按访问的ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决 session的问题。例如:

upstream myapp {  ip_hash; server localhost:8080 weight=3;  server localhost:8081 weight=1; }


  1. fair:按后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstream myapp {  server localhost:8080 weight=3;  server localhost:8081 weight=1;  fair }