反向代理
概念介绍
正向代理:
- 代理客户端
- 例如用户无法访问外网而代理服务器能访问外网,则用户可通过访问代理服务器从而访问外网。
反向代理:
- 代理服务端。
- 代理服务器(如Nginx服务器)接收到来自客户端的请求后将请求分发到应用服务器。在这个过程中,代理服务器默认以轮询的方式代理,而应用服务器的ip和端口号对客户端是透明的。
反向代理的应用场景:
- 代理业务服务服务器
- 代理文件存储服务器
简单配置
反向代理需要在配置文件的http块中配置,如下所示:
txt
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
# upstearm块用于设置反向代理,后面跟着代理名称(可自定义)
#文件服务
upstream fileserver{
server 192.168.101.65:9000;
}
#后台网关
upstream gatewayserver{
server 127.0.0.1:63010 ;
server 127.0.0.1:63011 ;
}
server {
listen 80;
#虚拟主机的域名
server_name www.yyds.cn localhost;
#配置反向代理的url路径, 当输入域名/api/时会请求http://gatewayserver/处的服务
location /api/ {
# 此处名字要与upstream处设置的名字相同
proxy_pass http://gatewayserver/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
负载均衡
概念介绍
在集群化部署时,由于一个软件应用或服务被部署到多台应用服务器上,所以需要判断将客户端请求分发给哪台服务器处理。而负载均衡的目的就是对客户端请求进行合理分发。
简单配置
在配置文件的upstream块中进行配置
txt
#后台网关
upstream gatewayserver{
# weight设置权重,服务器的权重越大分配到的请求越多
server 127.0.0.1:63010 weight=10;
server 127.0.0.1:63011 weight=5;
# down,该台服务器不提供服务
server 127.0.0.1:63011 weight=5 down;
# backup, 备用服务器,在其他服务器出现故障时提供服务
server 127.0.0.1:63011 weight=5 backup;
}
其他配置
- ip_hash: 判断来源的的ip地址,相同的ip会下发到相同的服务器。但是若用户的ip地址变化则无法保持会话。比如用户在使用手机时从一个ip地址变换到另一个ip地址。
- least_conn: 将用户请求分配到接收请求次数最少的服务器
- fair: 根据后端服务器的响应时间转发请求
- url_hash: 定向流量转发。根据用户访问的url转发到相应服务器。常用于访问固定资源。如根据url定位到用户要访问的文件在哪台服务器上。