Nginx 动静分离相关配置解析

news2025/1/10 17:16:17

Nginx 动静分离相关配置解析

本篇主要介绍nginx 动静分离相关配置解析

image-20221201063248222

概述

动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路.

准备工作

配置2台 虚拟机 并且都安装好nginx 服务,配置信息如下 , 并且在 hosts文件中做好域名配置

ip模拟域名类型
172.16.225.111www.testfront.com静态资源服务器
172.16.225.110www.testbackend.com动态资源服务器

主机电脑 /etc/hosts 文件配置如下

172.16.225.111 www.testfront.com
172.16.225.110 www.testbackend.com

front 相关配置

第一步就简单的把 front 的请求 proxy_pass 到 backend 服务上去

注意需要在 front 的虚拟机中配置 /etc/hosts/ 172.16.225.110 www.testbackend.com 否则启动抛 host not found in upstream "www.testbackend.com"

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {
        listen       80;
        server_name  www.testfront.com;

        location / {
            #这里使用域名所以需要在front本机上配置 etc/hosts
            proxy_pass http://www.testbackend.com; 
        }
        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }
}

backend 相关配置

backend 不需要配置, 只是在 html/index.html 修改内容 添加一个图片,并且标注了是backend 的 ip

...
<img src="/my.gif" height="100" width="100"/>
<p><em>Thank you for using nginx 172.16.225.110.</em></p>
...

非动静分离

非动静分离是指 把静态资源直接放到 后端服务器上

根据上面的配置 当请求访问到 /my.gif 的时候 需要在backend 的 默认html/下要有这个my.gif文件

image-20221201055242113

此时打开 www.testfront.com 和 www.testbackend.com 都会得到如下的界面

image-20221201055252096

动静分离

是指把静态资源 提取出来, 如上把 my.gif 提取到 front机器中,让所有访问静态资源的直接去front中访问

先把 backend机器中的 html/my.gif 静态资源删除了

image-20221201055705068

方式一 正则匹配文件名后缀

以下配置 均在 front 机器上 即 172.16.225.111 上

配置 正则根据文件后缀去匹配 (不区分大小写)注意 正则匹配中 会把 /* 后面所有的路径都拼接到 /www/static/后面

....
    location ~* .(gif|jpg|jpeg|png|bmp|swf|css|js)$ {
          root    /www/static;
    }
....

上面的配置意思是 当访问到 .gif... 等资源的时候 直接去 /www/static 下面寻找 相当于它访问了 /www/static/my.gif ,所以我这里要把my.gif 放入 /www/static下, 此时就能访问到了 并且是要通过 www.testfront.com ,而 www.testbackend.com 是无法访问到的,因为静态资源已经被移动到 front 服务器上了

image-20221201060317043

方式二 前缀匹配 (优先级高于 上面正则)

以下配置 均在 front 机器上 即 172.16.225.111 上

以下位置块中的修饰符 ^~ 会导致区分大小写的正则表达式匹配.

以下 /static/my.gif 会被匹配到

....
    location ^~ /static/ {
          root  /www/static;
    }
....

注意 root 是会把 location 中 /static/ 添加到 /www/static/ 后面 即 如果访问 /static/my.gif 会被匹配到 /www/static/static/my.gif

还有一种是 alias

....
    location ^~ /static/ {
          alias  /www/static;
    }
....

注意 alias 是会忽略 location 中 /static/ 不会添加到 /www/static/ 后面 即 如果访问 /static/my.gif 会被匹配到 /www/static/my.gif

总结

本篇主要介绍了 Nginx 动静分离的配置 主要有两种方式可以

  • ~* .(gif|jpg|jpeg|png|bmp|swf|css|js)$ 正则匹配文件后缀的方式
  • ^~ /static/ 匹配前缀路径的方式 优先级比于上面的正则方式

还有介绍了 root 和 alias的区别

  • root 会把location 路径上的 追加到后面 /www/static/static/my.gif
  • alias 会忽略 location 上匹配的路径 /www/static/my.gif

最后总结一下 location 的匹配优先级

  • 所有类型location存在时,“=”匹配 > “^~”匹配 > 正则匹配 > 普通(最大前缀匹配)

    欢迎大家访问 个人博客 Johnny小屋
    欢迎关注个人公众号

欢迎关注个人公众号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/75421.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于jsp+mysql+ssm智慧仓库进销存系统-计算机毕业设计

项目介绍 企业仓库库存系统的设计在SSM的框架下&#xff0c;采用JAVA编程语言和JSP技术&#xff0c;&#xff0c;并使用Mysql作为系统的数据库。该系统设计了强大的功能模块&#xff0c;考虑了企业库存管理的各个方面。这些主要功能模块分别是系统用户管理、用户信息管理、商品…

CUDNN与CUDA的踩坑与记录

CUDNN与CUDA的踩坑与记录 CUDA的安装 nvidia-smi看显卡驱动能够安装的最高版本的CUDA下载CUDA–>点击安装过程去掉显卡驱动安装完成的结果如下&#xff1a;Summary Driver: Not Selected Toolkit: Installed in /usr/local/cuda-10.2/ Samples: Installed in /home/g…

【世界杯中的安全思考】工控设备

目录 1、总述 2、半自动越位技术&#xff1a;人工智能辅助裁判 3、卡塔尔的智能道路 4、体育场的冷却技术 5、医疗援助的可穿戴设备 6、实时导航 7、照明系统 8、感官观察室 1、总述 从世界杯带来的科技感&#xff0c;可以看出大到球场&#xff0c;小到足球&#xff0c;…

厨房装修竟然有这么多你不知道的事

每个家庭的厨房大小、形状不同&#xff0c;厨房的建筑结构在房子中往往也是比较复杂的&#xff0c;橱柜等设施如何安置&#xff0c;都要因地制宜&#xff0c;很难说怎样做最好。但这并不意味着厨房的布局没有规律可循。在规划厨房布局时&#xff0c;最简单的办法就是按照做饭的…

微服务框架 SpringCloud微服务架构 29 ES 集群 29.1 集群结构介绍

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构29 ES 集群29.1 集群结构介绍29.1.1 ES集群结构29 ES 集群 29.1 集群结构…

银行软件测试简历模板,找工作的小伙伴看过来了

目录 个人简历 教育背景 工作经历 自我评价 专业技能 总结 重点&#xff1a;配套学习资料和视频教学 个人简历 姓  名&#xff1a; 性  别&#xff1a; 学  历&#xff1a; 经  验&#xff1a; 手  机&#xff1a; 邮  箱&#xff1a; 政治面貌&#…

水滴公司Q3财报引股价增长,保险业复苏“第一枪”打响了?

2020年以来&#xff0c;保险行业整体都笼罩在发展失速的低迷中。 2020年&#xff0c;在保险中介监管信息系统执业登记的保险销售从业人员有971.2万人&#xff0c;而2022年6月&#xff0c;这项数据为570.7万人&#xff0c;接近腰斩。公开数据显示&#xff0c;2022前三季度&…

DDR4时序标准规范(二)

DDR4时序标准规范编码模式寄存器(MRx)模式寄存器0(MR0)CAS延迟测试模式TM写恢复(WR)/读预充DLL(延时锁相环)复位模式寄存器1(MR1)DLL(延时锁相环)使能/禁用ODT RTT&#xff08;标称&#xff09;值AL(附加延迟)写入均衡终端数据选通(TDQS)模式寄存器2(MR2)CAS写延迟低功耗自动自…

在ros中创建yolov5-onnxruntime功能包

文章目录 工作目录依赖库ROS其他依赖库Yolov5-onnxruntimeCMakeLists.txt编译可能存在的问题工作目录 在vscode中新建功能包apple_detect 依赖库 ROS cv_bridgegeometry_msgsimage_transportmessage_generationroscpprospysensor_msgsstd_msgs其他依赖库 opencv4.6.0onnxru…

计算机毕业设计ssm+vue基本微信小程序的心理咨询服务系统 uniapp 小程序

项目介绍 随着计算机技术的发展,带来社会各行业的进步,信息化逐渐运用到人们的生活中。传统模式的会员心理健康管理满足不了现代人的生活追求,服务质量、服务速度,之前的很多网站由于功能、或者框架设计等原因,无法完美的展现它的特色,优势,浪费了很多资源。使用管理系统进行管…

绿色荧光试剂210236-90-1,Fitc-TSA,Fluorescein TSA,Fitc-Tyramide荧光素酪胺

试剂基团反应特点&#xff08;Reagent group reaction characteristics&#xff09;&#xff1a; Fluorescein Tyramide&#xff08;荧光素酪胺&#xff09;是一种绿色荧光试剂&#xff0c;广泛用于 IHC、ICC、FISH 和多色 FISH 中的酪胺信号放大 (TSA)。 HRP 催化多个酪胺分子…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java垃圾回收系统j16l0

这个选题的话其实有很多的&#xff0c;就看你自己能接受怎么样的&#xff0c;比如可以做网站类、系统类、小程序类、安卓app、大数据类等等&#xff0c;这个也要看你个人能力和技术问题&#xff0c;如果技术小白或者有一点点基础的话建议选择网站类和系统类的&#xff0c;如果有…

用HTML+CSS做一个漂亮简单大学生校园班级网页

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

数据时代,漫谈数据建模

不管什么样的模型都可以理解为一种预设&#xff0c;比如像一张大宽表&#xff0c;它的维度和指标在大宽表中就是固定的&#xff0c;只是维度列多一些&#xff0c;指标多一些&#xff0c;给了用户更多的一种组合维度和指标的可能&#xff0c;并不是说就没有模型的概念。 在理解…

Python实战案例,PyQt5模块,实现疫情信息快速查看工具(附源码)

前言 今天给大家介绍的是Python疫情信息快速查看工具&#xff0c;在这里给需要的小伙伴们代码&#xff0c;并且给出一点小心得。 PyQt概述 PyQt5是Qt框架的Python语言实现&#xff0c;由Riverbank Computing开发&#xff0c;是最强大的GUI库之一。PyQt提供了一个设计良好的窗…

springcloud3 EurekaClient单机搭建2

一 EurekaClient-provider提供者搭建 工程架构 1.1 搭建步骤 1.1.1 复制模块 复制mscloud-provider模块变成 mscloud-provider8004 1.1.2.修改pom 新增eureka-client的依赖 完整代码 <dependency><groupId>junit</groupId><artifactId>junit</…

Pluggy源码解读----pluggy源码解读基础准备

【原文链接】Pluggy源码解读----pluggy源码解读基础准备 解读pluggy源码&#xff0c;直接使用pytest环境中安装的pluggy即可&#xff0c;比如这里安装的pluggy版本是1.0.0&#xff0c;为了更好的理解源码&#xff0c;这里首先使用如下应用代码作为应用实例&#xff0c;从如下代…

ASEMI电磁炉整流桥KBJ2510参数和性能

编辑-Z ASEMI电磁炉整流桥KBJ2510参数和性能怎么样呢&#xff1f;ASEMI采用波峰的GPP大芯片&#xff0c;工艺制造&#xff0c;稳定性高&#xff0c;抗冲击性强。KBJ2510具体参数为&#xff1a;正电流&#xff1a;25A&#xff0c;反向耐压&#xff1a;1000V&#xff0c;反向电流…

openai注册流程

前置条件 1、注册登陆的时候需要使用梯子&#xff0c;梯子使用美国的&#xff0c;其他地区的梯子不一定正常使用 2、海外短信验证码 3、整个流程使用梯子 4、登陆后可以不用梯子-正常使用 openai网址 https://chat.openai.com https://openai.com https://beta.openai.…

四面阿里斩获offer定级为P7+ 2022年最新阿里巴巴70道高级面试题

前言 **四面阿里的面经总结&#xff1a;**我觉得有一个能够找一份大厂的 offer的想法&#xff0c;这是很正常的&#xff0c;这并不是我们的饭后谈资而是每个技术人的追求。像阿里、腾讯、美团、字节跳动、京东等等的技术氛围与技术规范度还是要明显优于一些创业型公司 / 小公司…