代理服务器(proxy serve)
提供代理服务的电脑系统或其他类型的网络终端,代替网络用户去获得网络信息。
使用代理服务器的好处:
提高访问速度。
防火墙作用:
通过代理服务器访问远程站点,可以在大力服务器上设限,过滤掉某些不安全的信息,同时正向代理上网者可以隐藏自己的ip,免收攻击。
突破访问的限制。
可以通过代理服务器,访问目标站点。
正向代理:
位于客户端与原始服务器之间的代理服务器,为了从原始服务器获得请求,客户端向代理发出请求,随后向真是服务器发出请求。
简单一点: A向C借钱,由于一些情况不能直接向C借钱,于是A找B,B向C借钱,于是A得到了钱。
但是C并不知道A的存在。B就充当了A的代理人的角色。总结来说:正向代理隐藏了客户端client
反向代理:
客户端去访问服务器时,并不知道访问那一台,就像是客户端访问代理服务器一样,实际上是当代理服务器拿到客户端请求后转发到真实服务器中的任意一台(或根据匹配规则来),在用户看来,客户端只是访问了代理服务器,典型的例子就是负载均衡。
A向B借钱,B没有拿自己钱,而是悄悄的向C去借钱,然后再交给A,A以为是B得钱,但不知道C的存在。
区别:
位置不同:
正向:架设在客户端与目标主机之间。
反向:架设在服务器端。
代理对象不同:
正向:代理客户端,服务器不知道实际发起请求的客户端。
反向:代理服务器端,客户端不知道实际提供服务的服务端。
nginx便可以通过反向代理实现负载均衡,将客户端发出的请求可以分发到设置的多个tomcat下。
实现过程
server
{
listen
80
;
server_name localhost;
client_max_body_size
1024M
;
location / {
proxy_pass http:
//localhost:8080;
proxy_set_header
Host
$host:$server_port;
}
}
当我们访问80端口时,相当于访问8080端口。
负载均衡其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。简单而言就是当有2台或以上服务器时,根据规则随机的将请求分发到指定的服务器上处理,负载均衡配置一般都需要同时配置反向代理,通过反向代理跳转到负载均衡。而Nginx目前支持自带3种负载均衡策略,还有2种常用的第三方策略。
RR默认:
每个请求按照时间顺序逐一分发到后端服务器,如果后端服务器down掉,则自动剔除。
upstream test {
server localhost:
8080
;
server localhost:
8081
;
}
server {
listen
81
;
server_name localhost;
client_max_body_size
1024M
;
location / {
proxy_pass http:
//test;
proxy_set_header
Host
$host:$server_port;
}
}
核心代码:
upstream test {
server localhost:
8080
;
server localhost:
8081
;
}
访问80端口时,默认跳转到8080端口,具体是Nginx会判断服务器的状态,如果服务器不能访问,就不会跳转掉这台服务器,
所以也避免了一台服务器挂了影响使用的情况,由于Nginx默认是RR策略,所以我们不需要其他更多的设置。
其他两种方式在这里不做具体展开。另有权重分配和ip_hash和第三方框架方法。
具体参考博客:
https://mp.weixin.qq.com/s/Yw0Rtb3HoRm0HZ5d7OXdyA
https://blog.csdn.net/zt15732625878/article/details/78941268