Nginx反向代理和负载均衡

1. 正向代理

你的电脑要上网,其实是访问不到互联网的,用的都是内网IP,要上网,就得通过代理服务器,
相当于别人帮你上网,把你想知道的结果返给你。

Nginx反向代理和负载均衡_第1张图片
正向代理

2. 反向代理

比如访问淘宝,有很多服务器提供服务,可能是上千台服务器的集群,并发量很大。此时访问淘宝首页,其实访问的是域名(一个域名只能绑定一个IP,但一个IP可以被多个域名绑定),是用的哪个服务器呢,这个时候就要用到反向代理服务器,反向代理绑定www.taobao.com。现在,请求反向代理服务器,进行请求转发,请求来了后,根据请求的域名,找到了3个服务器,就会把请求轮循分配。

Nginx反向代理和负载均衡_第2张图片
反向代理

两者区别:正向代理就是通过代理服务器上网,反向代理就是有好多服务器提供服务,由反向代理服务器决定谁提供服务,主要应用在服务端。

3. 反向代理的模拟

应该有一个Nginx服务器,多个应用服务器(可以是Tomcat),然后把代码部署到Tomcat上面,由Nginx决定哪个Tomcat提供服务。

准备2个Tomcat

一共2个Tomcat,在/usr/local/tomcats下有2个,修改tomcat1或2的端口号防止用的时候冲突,然后访问通了没。

1. Nginx的配置文件

在最后一个}的前面加上下面的内容,然后nginx重新加载配置文件

upstream tomcats{
    server 192.168.25.148:8080;
    server 192.168.25.148:8081;
   }

   server {
        listen       80;
        server_name  tomcat.taotao.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass   http://tomcats;
            index  index.html index.htm;
        }
   }

2. 访问tomcat.taotao.com,刷新界面

Nginx反向代理和负载均衡_第3张图片
结果1
Nginx反向代理和负载均衡_第4张图片
结果2

两个结果不一样(我在Tomcat1和2的webapps下分别修改欢迎页server.xml,用以区分访问一个域名,多个服务器提供服务)。

4. 负载均衡

如果服务器中有新服务器(性能好),旧服务器同时存在,就需要用到负载均衡。就要能者多劳,性能好的多干活。

只需要在upstreamserver后添加一个weight即可,代表权重,权重越高,分配的请求数量就越多。
默认权重是1.

upstream tomcats{
    server 192.168.25.148:8080 weight=2;
    server 192.168.25.148:8081;
   }

上篇:Nginx安装和配置

你可能感兴趣的:(Nginx反向代理和负载均衡)