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

nginx 的反向代理 负载均衡 动静分离 重写

反向代理:客户端访问代理服务器,代理服务器代理web站点响应用户请求

    一台nginx  一台tomcat

    实现nginx反向代理tomcat

    (用户访问nginx服务器,实际访问到的是tomcat页面)

   开启nginx服务

    vim /usr/local/nginx/conf/nginx.conf

    修改配置文件,代理tomcat的地址192.168.38.5:8080

  

      nginx -s reload

     打开浏览器输入192.168.38.3

反向代理二

 根据访问的不同路径 nginx 反向代理到不同的服务器上

  http://192.168.38.3/edu     直接跳转到 192.168.38.5:8080/edu

  http://192.168.38.3/vod     直接跳转到 192.168.38.6:8080/vod

两台tomcat 服务器 地址分别为   192.168.10.45    192.168.10.47  并tomcat 都已启动

  准备edu 和aaa测试页面

192.168.38.5主机

cd /usr/local/tomcat/webapps/

 mkdir  edu

 echo "edu.com" > edu/index.html

192.168.38.6主机

cd /usr/local/tomcat/webapps/

 mkdir  aaa

 echo "8888" > aaa/index.html

修改nginx 主机 配置文件

 vim /usr/local/nginx/conf/nginx.conf

    nginx -s reload

 网页测试

  192.168.38.3/edu/

192.168.38.3/aaa/

负载均衡:nginx作为调度服务器,反向代理多台web服务器响应用户请求

策略: 轮询  权重   ip_hash   fair(按照后端相应时间)

                在上面实验的基础上做

将 192.168.38.6 中 aaa 文件夹 更名为 edu

   cd  /usr/local/tomcat/webapps

   mv  aaa  edu

 修改nginx 服务器配置文件

vim /usr/local/nginx/conf/nginx.conf

   nginx -s reload

浏览器测试,刷新内容交替出现

动静分离

   将动态请求和静态请求分开

   两种方案:

      纯粹的把静态资源独立成单独的域名 放到一台服务器上   目前主流的方法

      另一种是动态跟静态资文件混合在一起发布 通过 nginx 来分开

准备静态资源

   nginx 服务器上

   cd  /

   mkdir  /data

   cd /data

   mkdir   www  image

echo "<h1>static web test</h1>" > www/test.html

 cd  image     //上传两张图片并改名

动态资源使用 tomcat 服务器 默认 无需改动

   修改 nginx 配置文件

     nginx -s reload

网页测试

http://192.168.38.3/image/1.png

http://192.168.38.3/image/2.png

http://192.168.38.3/index.jsp

重写

rewrite功能就是,使用nginx提供的全局变量或自己设置的变量,使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标记位实现URL重写以及重定向。更换域名后需要保持旧的域名能跳转到新的域名上、某网页发生改变需要跳转到新的页面、网站防盗链等等需求

 修改配置文件

重读 nginx  -s  reload

本地磁盘地址C:\Windows\System32\drivers\etc\hosts

  域名解析

浏览器访问www.aax.com 会转到 www.liangzhi.cn

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

相关文章:

  • 利用条件编译实现RTT可控的调试输出
  • 精准核验,实时响应-身份证实名认证接口-身份证二要素核验
  • TCP为什么是三次握手,而不是二次?
  • Solana 数据实时访问的三大工具对比:哪种最适合你的应用?
  • PHP实现签名类
  • 外卖跑腿小程序评价系统框架搭建
  • 嵌入式鸿蒙openharmony应用开发环境搭建与工程创建实现
  • android studio第一次编译apk,用时6分钟
  • HarmonyOS NEXT 使用 relationalStore 实现数据库操作
  • 鸿蒙ArkTS-发请求第三方接口显示实时新闻列表页面
  • 一键生成专业流程图:Draw.io与AI结合的高效绘图指南
  • 蓝桥杯2025.5.23每日一题-儿童数
  • DAY 34 GPU训练及类的call方法
  • 如果教材这样讲---开关电源的拓扑结构
  • FTP Bounce Attack:原理、影响与防御
  • DL00912-基于自监督深度聚类的高光谱目标检测含数据集
  • 通过对音频信号提取梅尔频谱图并转换为对数梅尔频谱图得到的。它的形状主要由以下参数决定 转换成图片 64*64像素
  • 第九天的尝试
  • android property 系统
  • SpringAI(GA版)的Advisor:快速上手+源码解读
  • OCC导入进度显示
  • 一个基于 ESP-IDF 的 RPC over UDP 示例
  • Spring Boot WebFlux流式返回全攻略:从基础到企业级实践
  • Sequelize 表格操作大全
  • Kafka 集群中,Broker和Controller的关系
  • Windows逆向工程提升之IMAGE_EXPORT_DIRECTORY
  • 变量的作用域:全局变量 vs 局部变量——编程思维的核心与实践智慧
  • 大模型部署ollama/vLLM/LMDeploy/SGLang区别
  • 不使用Long.parseLong()将String转成long类型,不使用String.valueOf()将Long转成String类型
  • 解锁C++编辑距离:文本相似度的度量密码