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

nginx的反向代理和负载均衡

http 协议反向代理

反向代理配置参数:

proxy_pass;#用来设置将客户端请求转发给的后端服务器的主机 可以是主机名(将转发至后端服务做为主机头首部)、IP地址:端口的方式 也可以代理到预先设置的主机群组,需要模块ngx_http_upstream_module支持

proxy_hide_header field;#用于nginx作为反向代理的时候 在返回给客户端http响应时 隐藏后端服务器相应头部的信息 可以设置在http,server或location块

proxy_pass_header field;透传 #默认nginx在响应报文中不传递后端服务器的首部字段Date, Server, X-Pad, X-Accel等参数 #如果要传递的话则要使用 proxy_pass_header field声明将后端服务器返回的值传递给客户端 #field 首部字段大小不敏感

proxy_pass_request_body on | off; #是否向后端服务器发送HTTP实体部分,可以设置在http,server或location块,默认即为开启

proxy_pass_request_headers on | off; #是否将客户端的请求头部转发给后端服务器,可以设置在http,server或location块,默认即为开启

proxy_send_timeout time; #配置nginx项后端服务器或服务器组发起write请求后,等待的超时 时间,默认60s

proxy_connect_timeout time; #配置nginx服务器与后端服务器尝试建立连接的超时时间,默认为60秒

proxy_http_version 1.0; #用于设置nginx提供代理服务的HTTP协议的版本,默认http 1.0

nginx动静分离的实现。

nginx反向代理的缓存功能

 缓存功能默认关闭状态,需要先动配置才能启用

proxy_cache zone_name | off; 默认off #指明调用的缓存,或关闭缓存机制;

Context:http, server, location #zone_name 表示缓存的名称.需要由proxy_cache_path事先定义

proxy_cache_key string; #缓存中用于“键”的内容,默认值:proxy_cache_key $scheme$proxy_host$request_uri;

proxy_cache_valid [code ...] time; #定义对特定响应码的响应内容的缓存时长,定义在http{...}中

proxy_cache_path; #定义可用于proxy功能的缓存

我们先非缓存场景压测一下

发现时间比较长,我们可以做个缓存来实现加快时间

在nginx的主配置文件中http下加

然后再压测就可以发现时间变快了很多


反向代理的负载均衡

Nginx可以将客户端的请求转发至单台后端服务器但是无法转发至特定的一组的服务器,而 且不能对后端服务器提供相应的服务器状态监测,Nginx 可以基于ngx_http_upstream_module模块提 供服务器分组转发、权重分配、状态监测、调度算法等高级功能

http upstream配置参数

upstream name { server ..... ...... }#自定义一组服务器,配置在http块内

server address [parameters]; #配置一个后端web服务器,配置在upstream内,至少要有一个server服务器配置。

least_conn; #最少连接调度算法,优先将客户端请求调度到当前连接最少的后端服务器,相当于LVS中的WLC

ip_hash; #源地址hash调度方法,基于的客户端的remote_addr(源地址IPv4的前24位或整个IPv6地址)做hash计 算,以实现会话保持

tcp的四层负载

在nginx源码编译安装的时候需要加上stream模块

Nginx在1.9.0版本开始支持tcp模式的负载均衡,在1.9.13版本开始支持udp协议的负载,udp主要用于 DNS的域名解析,其配置方式和指令和http 代理类似,其基于ngx_stream_proxy_module模块实现tcp 负载,另外基于模块ngx_stream_upstream_module实现后端服务器分组转发、权重分配、状态监测、 调度算法等高级功能。

dns的配置命令,在rfc1912.zones中写出要维护的域名,然后编写a记录文件

配置a记录文件之后主要看是不是属于named组的

不属于用chgrp命令改一下就可以了

注意要写在http语句之外

之后就可以实现10和20的轮询调度

 mysql的负载均衡实现

在配置文件添加一下server-id 然后进入mysql中授权

mysql的负载均衡实现

安装一下mysql命令然后测试

实现成功

http://www.dtcms.com/a/106981.html

相关文章:

  • git分布式控制工具详解
  • 深入解析使用Python通过STOMP协议接收ActiveMQ消息
  • 数据库6(数据库指令)
  • Django 使用 matplotlib 遇到 RuntimeError: main thread is not in main loop 解决办法
  • Linux系统程序设计:从入门到高级Day01
  • NHANES指标推荐:HCHR
  • 区间DP总结
  • 4.0/Q2,Charls最新文章解读
  • 2025年渗透测试面试题总结-某腾某讯-技术安全实习生升级(题目+回答)
  • Spring Boot 3.4.3 基于 OpenFeign 实现声明式 HTTP 接口调用
  • LabVIEW高效溢流阀测试系统
  • 严重BUG修复及部分体验问题优化
  • 【5天学会TS】打卡学习Typescript的第一天
  • Markdown常用语法
  • 合合信息大模型加速器2.0:构建智能知识库,助力大模型减少“幻觉”
  • 如何避免内存泄漏,尤其是在React中
  • 大数据(4.5)Hive聚合函数深度解析:从基础统计到多维聚合的12个生产级技巧
  • 5G_WiFi_CE_射频输出功率、发射功率控制(TPC)和功率密度测试
  • VideoToolbox 实战:H264 编码 Demo 的高效实现
  • CSS 高级用法
  • javaSE知识梳理(一)
  • 八款内网电脑监控软件:探寻适配企业需求的数字化监管方案组合
  • 银河麒麟V10 aarch64架构安装mysql教程
  • 应用密码零改造方案一
  • DLML正则化
  • 【前端知识】Vue当中目录别名@的使用
  • leetcode515 在每个树行中找最大值
  • mac air m系列arm架构芯片安装虚拟机 UTM+debian 浏览器firefox和chrome
  • Bugku-贝斯手
  • 【Linux篇】自主Shell命令行解释器