Nginx的反向代理(负载均衡)

配置Tomcat集群

1、将配置好的Tomcat文件夹复制一分,名为tomcat-7_1

[root@master local]# cp -r apache-tomcat-7.0.104/ tomcat-7_1

2、修改配置文件(tomcat-7_1)

修改conf目录下的server.xml文件

①将关闭Tomcat的监听端口“8005”更改为“9005”

<Server port="9005" shutdown="SHUTDOWN">

在这里插入图片描述

②将HTTP的端口“8080”更改为“8090”

<Connector port="8090" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

在这里插入图片描述

③将AJP/1.3的端口号“8009”更改为“9009”

<Connector protocol="AJP/1.3"
               address="::1"
               port="9009"
               redirectPort="8443" />

在这里插入图片描述

保存并退出

3、回到bin目录下启动服务

[root@master bin]# ./startup.sh   

在这里插入图片描述

网页查看:192.168.100.11:8090
在这里插入图片描述

反向代理

反向代理和正向代理的区别就是:正向代理代理客户端,反向代理代理服务器。

反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。

关于反向代理的处理方式,举例如我大天朝的某宝网站,每天同时连接到网站的访问人数已经爆表,单个服务器远远不能满足人民日益增长的购买欲望了,此时就出现了一个大家耳熟能详的名词:分布式部署;也就是通过部署多台服务器来解决访问人数限制的问题;某宝网站中大部分功能也是直接使用nginx进行反向代理实现的,并且通过封装nginx和其他的组件之后起了个高大上的名字:Tengine,有兴趣的童鞋可以访问Tengine的官网查看具体的信息:http://tengine.taobao.org/

理解这两种代理的关键在于代理服务器所代理的对象是什么,正向代理代理的是客户端,我们需要在客户端进行一些代理的设置。而反向代理代理的是服务器,作为客户端的我们是无法感知到服务器的真实存在的。

总结起来还是一句话:正向代理代理客户端,反向代理代理服务器。

反向代理有哪些主要应用?
现在许多大型web网站都用到反向代理。除了可以防止外网对内网服务器的恶性攻击、缓存以减少服务器的压力和访问安全控制之外,还可以进行负载均衡,将用户请求分配给多个服务器。

操作

Nginx作为近年来较火的反向代理服务器,安装在目的主机端,主要用于转发客户机请求,后台有多个http服务器提供服务,nginx的功能就是把请求转发给后面的服务器,决定哪台目标主机来处理当前请求。下面演示如何进行配置使Nginx发挥作用。

模拟n个http服务器作为目标主机

用作测试,简单的使用2个tomcat实例模拟两台http服务器,分别将tomcat的端口改为8080和8090

1、修改nginx.conf文件

# upstream表示负载服务器池,定义名字为tomcats的服务器池

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

# proxy_pass

该指令用于设置被代理服务器的地址。可以是主机名称、IP地址加端口号的形式。

语法结构如下: proxy_pass URL;

URL 为被代理服务器的地址,可以包含传输协议、主机名称或IP地址加端口号,URI等。

proxy_pass http://www.123.com/uri;

PS:不要写错IP地址,不然出bug你就是在de一个不存在的bug!!

upstream mytomcat{
	server 192.168.100.11:8080 weight=2;
	server 192.168.100.11:8090;
   }
location / {
            root   html;
            index  index.html index.htm;
        }	改为
location / {
            proxy_pass   http://mytomcat;
			index  index.html index.htm;
        }

server_name最好也做一下更改,我更改为master

配置如图所示:
在这里插入图片描述

2、在eclipse里创建一个maven web工程

编辑index.jsp形成多个不同的war包(但命名应相同,都为nginx.war)

①nginx.war

<html>
<body>
<h2>Hello World!</h2>
</body>
</html>

在这里插入图片描述

②nginx.war

<html>
<body>
<h2>I am Sartin!</h2>
</body>
</html>

在这里插入图片描述

3、导入war包

将生成的两个war包分别放到 apache-tomcat-7.0.104和 tomcat-7_1这两个Tomcat集群的webapps目录下,一个文件夹一个
在这里插入图片描述

4、启动nginx服务并开启Tomcat集群(两个Tomcat都要开启)
[root@master ~]# cd /usr/local/apache-tomcat-7.0.104/bin
[root@master bin]# ./startup.sh

[root@master bin]# cd /usr/local/tomcat-7_1/bin
[root@master bin]# ./startup.sh

[root@master bin]# cd /usr/local/nginx/sbin
[root@master sbin]# ./nginx

在这里插入图片描述

5、网页查看:

http://master/nginx/

多次刷新会随机出现以下两个结果
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值