1、反向代理
正向代理:示意图
Nginx实现反向代理:Nginx作为反向代理服务器安装在服务端,Nginx的功能就是把请求转发给后面的应用服务器。
配置步骤 :
- 第一步:简单的使用2个tomcat实例模拟两台http服务器,分别将tomcat的端口改为8080和8081
- 第二步:启动两个tomcat。
./bin/startup.sh
访问两个tomcat
http://192.168.52.100:8080/
http://192.168.52.100:8081/
- 第三步:反向代理服务器的配置
#反向代理配置
#upstream中的server是真正处理请求的应用服务器地址
upstream lagou1{
#用server定义HTTP地址
server 192.168.80.100:8080;
}
server {
listen 80;
server_name www.lagou1.com;
location / {
# 利用 proxy_ pass可以将请求代理到upstream命名的HTTP服务
proxy_pass http://lagou1; #转发到的地址
index index.html index.htm;
}
}
upstream lagou2{
#用server定义HTTP地址
server 192.168.80.100:8081;
}
server {
listen 80;
server_name www.lagou2.com;
location / {
proxy_pass http://lagou2;
index index.html index.htm;
}
}
- 第四步:nginx重新加载配置文件
nginx -s reload
- 第五步:配置域名, 在hosts文件中添加域名和ip的映射关系
192.168.80.100 www.lagou1.com
192.168.80.100 www.lagou2.com
通过浏览器输入域名, 访问Nginx代理服务器, Nginx根据域名将请求转发给对应的目标服务器,作为用户我们看到的是服务器的响应结果页面,在整个过程中目标服务器相对于客户端是不可见的,服务端向外暴露的就是Nginx的地址。
2、负载均衡
2.1、什么是负载均衡
当一个请求发送过来的时候,Nginx作为反向代理服务器,会根据请求找到后面的目标服务器去处理请求,这就是反向代理. 那么, 如果目标服务器有多台的话,找哪一个服务器去处理当前请求呢 ? 这个合理分配请求到服务器的过程就叫做负载均衡。
2.2、为什么用负载均衡
当系统面临大量用户访问,负载过高的时候,通常会使用增加服务器数量来进行横向扩展, 负载均衡主要是为了分担访问量,将请求合理分发给不同的服务器, 避免临时的网络堵塞。
2.4、负载均衡策略
轮询
- 默认策略, 每个请求按照时间顺序逐一分配到不同的服务器,如果某一个服务器下线,能自动剔除
- 配置方式(必须proxy_pass 代理对象名相同),就是相同的upstream 定义的属性名,下面有多个server
weight
- 可以根据服务器的实际情况调整服务器权重。权重越高分配的请求越多,权重越低,请求越少。默认是都是1
- 配置方式
#负载均衡
upstream lagouServer{
# 用server定义 HTTP地址
server 192.168.52.100:8081 weight=1;
server 192.168.52.100:8082 weight=10;
}