当前位置: 首页 > news >正文

nginx服务器

nginx反向代理

在这里插入图片描述

nginx 反向代理的好处:

  • 提高访问速度

    因为nginx本身可以进行缓存,如果访问的同一接口,并且做了数据缓存, nginx就直接可把数据返回,不需要真正地访问服务端,从而提高访问速度。

  • 进行负载均衡

    所谓负载均衡,就是把大量的请求按照我们指定的方式均衡的分配给集群中的每台服务器。

  • 保证后端服务安全

    因为一般后台服务地址不会暴露,所以使用浏览器不能直接访问,可以把nginx作为请求访问的入口,请求到达nginx后转发到具体的服务中,从而保证后端服务的安全。

nginx 反向代理的配置:

server{listen 80;server_name localhost;location /api/{proxy_pass http://localhost:8080/admin/; #反向代理}
}

**proxy_pass:**该指令是用来设置代理服务器的地址,可以是主机名称,IP地址加端口号等形式。

如上代码的含义是:监听80端口号, 然后当我们访问 http://localhost:80/api/…/…这样的接口的时候,它会通过 location /api/ {} 这样的反向代理到 http://localhost:8080/admin/上来。

nginx 负载均衡

当如果服务以集群的方式进行部署时,那nginx在转发请求到服务器时就需要做相应的负载均衡。其实,负载均衡从本质上来说也是基于反向代理来实现的,最终都是转发请求。

**nginx 负载均衡的配置方式:**```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;#负载均衡}
}

*upstream:如果代理服务器是一组服务器的话,我们可以使用upstream指令配置后端服务器组。

如上代码的含义是:监听80端口号, 然后当我们访问 http://localhost:80/api/…/…这样的接口的时候,它会通过 location /api/ {} 这样的反向代理到 http://webservers/admin,根据webservers名称找到一组服务器,根据设置的负载均衡策略(默认是轮询)转发到具体的服务器
注:**upstream后面的名称可自定义,但要上下保持一致。

nginx 负载均衡策略:

| 轮询 | 默认方式
| weight | 权重方式,默认为1,权重越高,被分配的客户端请求就越多 |
| ip_hash | 依据ip分配方式,这样每个访客可以固定访问一个后端服务 |
| least_conn | 依据最少连接方式,把请求优先分配给连接数少的后端服务 |
| url_hash | 依据url分配方式,这样相同的url会被分配到同一个后端服务 |
| fair | 依据响应时间方式,响应时间短的服务将会被优先分配 |

**weight:**```nginx
upstream webservers{server 192.168.100.128:8080 weight=90;server 192.168.100.129:8080 weight=10;
}
**ip_hash:**```nginx
upstream webservers{ip_hash;server 192.168.100.128:8080;server 192.168.100.129:8080;
}

least_conn:

upstream webservers{least_conn;server 192.168.100.128:8080;server 192.168.100.129:8080;
}

url_hash:

upstream webservers{hash &request_uri;server 192.168.100.128:8080;server 192.168.100.129:8080;
}

fair:

upstream webservers{server 192.168.100.128:8080;server 192.168.100.129:8080;fair;
}
http://www.lryc.cn/news/232343.html

相关文章:

  • 电脑常用快捷键
  • 吴恩达《机器学习》8-3->8-4:模型表示I、模型表示II
  • 数据结构-二叉树力扣题
  • node 第十八天 中间件express-session实现会话密钥
  • 【机器学习基础】机器学习入门(1)
  • 赶快来!程序员接单必须知道的六大注意事项!!!
  • 【C++】日期类实现,与日期计算相关OJ题
  • 前端404页面的制作
  • 深兰科技轮腿家用AI机器人荣获“2023年度城市更新科创大奖”
  • 669.修剪二叉树
  • 论文绘图-机器学习100张模型图
  • PHP项目学习笔记-萤火商城-增加一个模块(表涉及到的操作和文件)
  • 如何用Java设计自动售货机?
  • JAVA数据代码示例
  • github常用搜索指令
  • 为什么esp8266刷入了固件,无法接受AT指令
  • Scala---字符串、集合
  • Power Automate-当收到HTTP请求时触发流程
  • 学习c#的第十四天
  • 6.jvm中对象创建流程与内存分配
  • 算法--搜索与图
  • ROS 文件系统
  • 车载通信与DDS标准解读系列(1):DDS-RPC
  • 通过构造树形结构介绍map的用法
  • 代码随想录算法训练营Day 53 || 1143.最长公共子序列、1035.不相交的线、53. 最大子序和
  • Oracle JDBC数据库驱动程序介绍
  • scipy实现单因素方差分析
  • 深度学习实战59-NLP最核心的模型:transformer的搭建与训练过程详解,手把手搭建与跑通
  • 一阶滤波器(一阶巴特沃斯滤波器)
  • .net core中前端vue HTML5 History 刷新页面404问题