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

nginx反向代理应用

一、location的写法

语法:

location[=|~|~*|^~] uri地址 {

        ........

        ........

}

1、=        精确匹配

2、~        通过正则表达式匹配请求,区分大小写

3、~*        通过正则表达式请求,不区分大小写

4、^~        不以正则表达式匹配请求

非常关键:

优先级:从高到低

=,^~,~,~*

案例:配置错误页面

 

 二、http的反向代理

location {

        proxy_pass        后端服务器:

}

1、定义location如果明确的写了uri地址,反向代理时也要写具体的uri地址

2、定义location如果使用正则表达式,反向代理时只能写到后端服务器地址结束

案例1:配置nginx将所有请求转交给后端服务器

做反向代理,后端必须有真实的网站服务器存在,将一台机器装上httpd作为网站服务器使用

删除默认的欢迎页面,重新写页面 

确保httpd本身可以访问

在shell的虚拟主机做配置 

案例2:将/test1请求转交给后端服务器

现在httpd(后端服务器)上做一个网页,进行访问测试

 

配置后端服务器记录真实客户端地址

1)在请求中添加真实客户端地址的字段

有反向代理的位置一般都需要添加,这里只演示最下方的一个

还需要修改httpd配置文件,来获取windows的访问IP

2)修改httpd访问日志格式

 

获取的IP就变为了客户端IP

三、upstream模块

作用:

        1、将多台web服务器定义为一个upstream组,实现web服务的负载均衡

        2、提供对后端服务器健康状态检查

1、调度算法

1、rr        轮询        默认算法

        优势:后端的每个服务处理的请求最大数相同,负载均衡效果好

        支持为后端服务器设置不同的权重值,避免资源浪费

        解决会话session保持/持久的方案:

        1)使用noSQL数据库作为会话的共享存储

        2)换调度算法

2、ip_hash

        一段时间内,可以将同一个客户端的请求转发到后端的同一个服务器上

2、定义upstream组

upstream        组名称 {

        [调度算法];

        server IP:port        [weight=number] [max_fails=number] [fail_timeout=number]

        server IP:port        [weight=number] [max_fails=number] [fail_timeout=number]

        server IP:port        [weight=number] [max_fails=number] [fail_timeout=number]

        server IP:port        [weight=number] [max_fails=number] [fail_timeout=number] backup

backup作用是其他的服务器全部故障,客户端会显示backup服务器,如若web服务器正常,则backup服务器不会显示

不要写在server{ }

location{

        proxy_pass http://upstream组名称;

}

案例:基于upstream模块实现web服务器的负载均衡

演示此案例后端至少需要有两个网站服务器

配置shell虚拟主机配置文件

进行访问点击刷新后端服务器会轮流响应 

 

停止一个web服务器,不会影响客户端的正常访问,web01正常访问 

 

全部停止会出现502错误

添加backup服务器

 backup服务器没有使用虚拟主机直接在主配置文件中配置的,可以使用虚拟主机

 

 

相关文章:

  • SMC自修改
  • 二进制安装指定版本的MariaDBv10.11.6
  • 珠算之珠心算观想算盘
  • 基于Python+Vue开发的鲜花商城管理系统源码+运行步骤
  • 深度学习基础:线性代数本质4——矩阵乘法
  • 机器学习之超参数优化(Hyperparameter Optimization)
  • 【leetcode hot 100 23】合并K个有序链表
  • 图像识别技术与应用-YOLO
  • AI日报 - 2025年3月13日
  • Spring Boot 整合 Druid 并开启监控
  • 软件版本号设计
  • IEC61850标准下MMS 缓存报告控制块 ResvTms详细解析
  • 十种处理权重矩阵的方法及数学公式
  • python-leetcode 49.二叉树中的最大路径和
  • 【ES6】ES6中的类
  • 侯捷C++课程学习笔记:构造函数那些事儿(四)
  • 微信h5环境使用开放标签(wx-open-launch-weapp)打开三方小程序
  • 【商城实战(25)】解锁UniApp移动端适配秘籍,打造完美商城体验
  • 第一章:Tailwind CSS基础与项目设置 - 第一节:Tailwind CSS入门 - 核心理念与工作流
  • BGP 规划问题、路由黑洞与环路
  • 首映|《星际宝贝史迪奇》真人电影,不变的“欧哈纳”
  • 3月中国减持189亿美元美债、持仓规模降至第三,英国升至第二
  • 巴菲特最新调仓:一季度大幅抛售银行股,再现保密仓位
  • 媒体评欧阳娜娜遭民进党当局威胁:艺人表达国家认同是民族大义
  • 联合国报告:全球经济前景恶化,面临高度不确定性
  • 陕西旱情实探:大型灌区农业供水有保障,大旱之年无旱象