Nginx实现负载均衡

1.什么是反向代理

正向代理,反向代理
正向代理:客户端知道服务端,通过代理端连接服务端。代理端代理的是服务端。 反向代理:所谓反向,是对正向而言的。服务端知道客户端,客户端不知道服务端,通过代理端连接服务端。代理端代理的是客户端。代理对象恰好相反,故名反向代理。
参考:https://www.zhihu.com/question/24723688

2.实现反向代理

使用伪集群的方式测试,正式服务器的话配置也一样,只需要把地址改成你服务器的地址就好了
第一步:安装tomcat并复制两份,端口一个为8080,一个为8081
安装tomcat直接解压缩就好了(前提安装了jdk);
[root@localhost software]# cp -r apache-tomcat-7.0.47 tomcat01
[root@localhost software]# cp -r apache-tomcat-7.0.47 tomcat02


Nginx实现负载均衡_第1张图片
image.png

第二步:启动两个tomcat

[root@localhost software]# tomcat01/bin/startup.sh
[root@localhost software]# tomcat02/bin/startup.sh

第三步:反向代理服务器的配置
复制一个server节点,将root改成proxy_pass
配置upstream

upstream tomcat1 {
    server 192.168.208.30:8080;
    }
    upstream tomcat2 {
    server 192.168.208.30:8081;
    }
    server {
        listen       80;
        server_name  www.mytest1.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

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

    }
    

    
    
    server {
        listen       80;
        server_name  www.mytest2.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

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

    }

第四步:nginx重新加载配置文件

第五步:配置域名
在hosts文件中添加域名和ip的映射关系


image.png

重启nginx
sbin/nginx -s reload


Nginx实现负载均衡_第2张图片
image.png
Nginx实现负载均衡_第3张图片
image.png

3.实现负载均衡

nginx实现负载均衡非常简单;
第一步:我们复制一份tomcat03,同时改变端口号为8082
第二步:修改nginx.conf

Nginx实现负载均衡_第4张图片
image.png

这种方式是 轮询方式。即每次访问的权重是一样的。第一次是8081,第二次是8082;
PS:
在虚拟机上模拟会出问题;真正的开发不会出现这种情况;
我们还可以根据服务器的实际情况调一下权重;权重越高分配的请求越多,权重越低,请求越少。默认是都是1
image.png

第三步:重启nginx
sbin/nginx -s reload
第三步:访问


Nginx实现负载均衡_第5张图片
image.png

Nginx实现负载均衡_第6张图片
image.png

总结:
1.复制几份tomcat
2.修改Nginx的配置文件
3.每次修改记得重启Nginx
4.根据实际情况分配权重

你可能感兴趣的:(Nginx实现负载均衡)