nginx反向代理的好处
- 提高访问速度
- 因为nginx本身可以进行缓存,如果访问的同一接口,并且做了数据缓存,nginx就直接可把数据返回,不需要真正地访问服务端,从而提高访问速度。
- 进行负载均衡
- 所谓负载均衡,就是把大量的请求按照我们指定的方式均衡的分配给集群中的每台服务器。
- 保证后端服务安全
- 因为一般后台服务地址不会暴露,所以使用浏览器不能直接访问,可以把nginx作为请求访问的入口,请求到达nginx后转发到具体的服务中,从而保证后端服务的安全。
配置Nginx反向代理
- 在nginx.config中配置
server{listen 80;server_name localhost;location /api/{proxy_pass http://localhost:8080/admin/; #反向代理} }
PS:如果请求的地址中含有api,那么会将网址转发到配置文件中的网址,api后面的部分自动拼接
Nginx负载均衡
upstream webservers{server 192.168.100.128:8080;server 192.168.100.129:8080; } server{listen 80;server_name localhost;location /api/{proxy_pass http://webservers/admin;#负载均衡} }
负载均衡的实现原理也是基于反向代理来实现的
将前端发过来的请求转发到上面配置的服务器中
nginx 负载均衡策略:
名称 说明 轮询 默认方式 weight 权重方式,默认为1,权重越高,被分配的客户端请求就越多 ip_hash 依据ip分配方式,这样每个访客可以固定访问一个后端服务 least_conn 依据最少连接方式,把请求优先分配给连接数少的后端服务 url_hash 依据url分配方式,这样相同的url会被分配到同一个后端服务 fair 依据响应时间方式,响应时间短的服务将会被优先分配
upstream webservers{
server 192.168.100.128:8080 weight=90;
server 192.168.100.129:8080 weight=10;
}