美文网首页
利用Nginx实现反向代理和负载均衡

利用Nginx实现反向代理和负载均衡

作者: MrRobot_ | 来源:发表于2019-02-15 19:07 被阅读17次

    什么是反向代理?

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

    正向代理

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

    反向代理

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

    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;
        }
    

    相关文章

      网友评论

          本文标题:利用Nginx实现反向代理和负载均衡

          本文链接:https://www.haomeiwen.com/subject/nropeqtx.html