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
第二步:启动两个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的映射关系
重启nginx
sbin/nginx -s reload
3.实现负载均衡
nginx实现负载均衡非常简单;
第一步:我们复制一份tomcat03,同时改变端口号为8082
第二步:修改nginx.conf
这种方式是 轮询方式。即每次访问的权重是一样的。第一次是8081,第二次是8082;
PS:
在虚拟机上模拟会出问题;真正的开发不会出现这种情况;
我们还可以根据服务器的实际情况调一下权重;权重越高分配的请求越多,权重越低,请求越少。默认是都是1
第三步:重启nginx
sbin/nginx -s reload
第三步:访问
总结:
1.复制几份tomcat
2.修改Nginx的配置文件
3.每次修改记得重启Nginx
4.根据实际情况分配权重