nginx反向代理应用

devtools/2025/3/12 7:41:31/

一、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服务器没有使用虚拟主机直接在主配置文件中配置的,可以使用虚拟主机

 

 


http://www.ppmy.cn/devtools/166493.html

相关文章

DeepSeek 掌舵创意方向+即梦 AI 绘制梦幻蓝图,引领创作潮流

我的个人主页 我的专栏: 人工智能领域、java-数据结构、Javase、C语言,希望能帮助到大家!!! 点赞👍收藏❤ 前言 在当今数字化浪潮汹涌澎湃的时代,人工智能已然成为推动各领域变革与创新的核心驱…

2025年NPDP产品经理认证报名时间和流程

从事项目经理,到底是应该考PMP还是应该考NPDP呢 一、考试时间: NPDP认证每年两次考试,分别在5月和11月;2024年NPDP考试具体时间以基金会网站发布为准。 考试时长: 3.5小时 (9: 00 -12: 30) 考试题目: 200道四选一的单选题,中英文对照&…

多宠识别:基于计算机视觉的智能宠物管理系统架构解析

一、行业痛点与技术方案演进 在多宠家庭场景中,传统方案面临三大技术瓶颈: 1. 生物特征混淆:同品种/毛色宠物识别准确率低于65% 2. 动态场景适应:进食/奔跑状态下的误检率达30% 3. 数据孤岛问题:离线设备无法实现持续…

spring-boot-starter和spring-boot-starter-web的关联

maven的作用是方便jar包的管理,所以每一个依赖都是对应着相应的一个或者一些jar包,从网上看到很多对spring-boot-starter的描述就是“这是Spring Boot的核心启动器,包含了自动配置、日志和YAML。”没看太明白,所参与的项目上也一直…

关于mybatis查询时,时间字段的映射问题

目录 1.mysql中,关于时间的两种类型 1.1 date 1.2 datetime 2.mybatis从mysql数据库查询出上述两种类型的字段后,映射到Java实体类时的问题 3.结语 1.mysql中,关于时间的两种类型 1.1 date 格式:2002-09-23 特点&#xff1a…

【redis】事务

简单地说,事务表示一组动作,要么全部执行,要么全部不执行。Redis事务是一组命令的集合,通过MULTI、EXEC等命令实现批量操作的原子性执行。 Redis事务的特点 其核心特点包括: 顺序性:命令按入队顺序执行隔…

Ubuntu 下 Docker 企业级运维指南:核心命令与最佳实践深度解析20250309

Ubuntu 下 Docker 企业级运维指南:核心命令与最佳实践深度解析 在当今的数字化时代,Docker 已成为企业应用部署和运维的基石。其轻量级、高效且灵活的容器化技术,为企业带来了前所未有的敏捷性和可扩展性。然而,随着容器化应用的…

LivePlayer.js视频H5播放器如何配置iframe允许自动播放和全屏操作

H5直播点播播放器 下载集成入口&#xff1a; https://www.liveqing.com/docs/download/LivePlayer.html 使用说明&#xff1a;https://www.liveqing.com/docs/manuals/LivePlayer.html iframe 设置 添加属性 allowfullscreen allow“autoplay; fullscreen” <iframe src&q…