什么是反向代理?

正向代理(基于客户端的代理)

正向代理

反向代理(基于服务器端的代理)

反向代理

反向代理服务器决定哪台服务器提供服务,返回代理服务器不提供服务器,也是请求的转发。

Nginx实现反向代理

两个域名指向同一台nginx服务器,用户访问不同的域名显示不同的网页内容。
两个域名是www.sian.com.cnwww.sohu.com,nginx服务器使用虚拟机192.168.25.133

第一步:安装两个tomcat,分别运行在8080和8081端口。
第二步:启动两个tomcat(注意修改tomcat的端口号)。
第三步:反向代理服务器的配置
在Nginx下的nginx.conf配置tomcat节点

upstream tomcat1 {
    server 192.168.25.133:8080;
    }
    server {
        listen       80;
        server_name  www.sina.com.cn;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass   http://tomcat1;
            index  index.html index.htm;
        }
    }
    upstream tomcat2 {
    server 192.168.25.133:8081;
    }
    server {
        listen       80;
        server_name  www.sohu.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

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

第四步:nginx重新加载配置文件
第五步:配置域名
在hosts文件中添加域名和ip的映射关系
192.168.25.133 www.sina.com.cn
192.168.25.133 www.sohu.com

重新加载配置文件

sbin/nginx -s reload

由于niginx里面配置了sohu和sina两个tomcat的地址,每当我们发起请求到tomcat,tomcat就会响应给niginx,niginx再把请求响应给我们,简单来讲就是配置多台tomcat服务器,交给niginx管理,是哪台服务器的请求就由niginx选择响应


负载均衡

如果一个服务由多条服务器提供,需要把负载分配到不同的服务器处理,需要负载均衡。这个时候,发送请求,两台服务轮询响应

 upstream tomcat2 {
    server 192.168.25.148:8081;
    server 192.168.25.148:8082;
  }

可以根据服务器的实际情况调整服务器权重。权重越高分配的请求越多,权重越低,请求越少。默认是都是1

 upstream tomcat2 {
    server 192.168.25.148:8081;
    server 192.168.25.148:8082 weight=2;
    }