分布式 - 服务器Nginx:一小时入门系列之动静分离

文章目录

      • 1. 动静分离的好处
      • 2. 分离静态文件
      • 3. 修改 Nginx 配置文件
      • 4. location 命令修饰符优先级

1. 动静分离的好处

Apache Tocmat 严格来说是一款java EE服务器,主要是用来处理 servlet请求。处理css、js、图片这些静态文件的IO性能不够好,因此,将静态文件交给nginx处理,可以提高系统的访问速度,减少tomcat的请求次数,有效的给后端服务器降压。

2. 分离静态文件

在这里插入图片描述

部署 ruoyi-admin.war

# 将ruoyi-admin.war移动到/home/apache-tomcat-8.5.81/webapps目录下,并重命名为ROOT.war
mv /home/apps/ruoyi-admin.war /home/apache-tomcat-8.5.81/webapps/ROOT.war
rm -rf /home/apache-tomcat-8.5.81/webapps/ROOT
# 启动Tomcat容器
/home/apache-tomcat-8.5.81/bin/startup.sh

部署完成后,对项目目录稍作调整:

cd /home/apache-tomcat-8.5.81/webapps/ROOT
# 将WEB-INF/classes/static目录下的i18n目录,移动到WEB-INF/classes/templates/目录下
mv WEB-INF/classes/static/i18n  WEB-INF/classes/templates/i18n 
# 将static目录下的文件,移动到/home/www/目录下
mv WEB-INF/classes/static /some/path
# 给/some/path目录赋予所有操作权限
chmod -R 777 /some/path
# 启动Tomcat容器
/home/apache-tomcat-8.5.81/bin/startup.sh

修改application.yaml文件:

messages:
    # 国际化资源文件路径 
    # 将 static/i18n/messages 修改为 templates/i18n/messages
    basename: templates/i18n/messages

调整后 WEB-INF/classes/ 目录下的的结构:

在这里插入图片描述

静态文件 /some/path/ 目录说明:除了js、css、图片文件之外,还有字体文件和一个ie提示页面。

在这里插入图片描述

3. 修改 Nginx 配置文件

在/etc/nginx/conf.d文件夹下新增 8002.conf 配置文件:

[root@nginx-dev conf.d]# cat 8002.conf
server{
    listen 8002;
    server_name rioyi.tomcat;

    # 请求转达到 http://localhost:8080 
    location / {
        proxy_pass http://localhost:8080;
    }

    # 请求ie页面
    location = /html/ie.html {
        root  /some/path/static;
    }

    # 请求字体文件
    location ^~ /fonts/ {
        root  /some/path/static;
    }

    # css|js|png|jpg|gif|ico 页面
    location ~ \.(css|js|png|jpg|gif|ico) {
        root /some/path/static;
    }
}
[root@nginx-dev conf.d]# nginx -s reload

访问 http://192.168.1.9:8002 即可访问若依后台管理系统。

在这里插入图片描述

直接访问某个静态文件:http://192.168.1.9:8002/css/login.min.css,就会进入 /some/path/static/ruoyi/css/ry-ui.css

在这里插入图片描述

4. location 命令修饰符优先级

location可以使用修饰符或正则表达式

① 修饰符:

  • =:等于,严格匹配 ,匹配优先级最高。

  • ^~:表示普通字符匹配。使用前缀匹配。如果匹配成功,则不再匹配其它 location。优先级第二高。

  • ~:区分大小写

  • ~*:不区分大小写

② 优先级从高到低依次为:

  1. 精确匹配(=)
  2. 前缀匹配(^~)
  3. 正则匹配(~和~*)
  4. 不写

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IDEA关闭项目,但是后台程序没有关闭进程(解决方案)

最近遇到一个很奇怪的问题,idea关闭项目后,系统进程没有杀死进程,再次执行的时候会提示端口占用,并提示Process exited with an error: 1 (Exit value: 1) 错误原因:应用程序关闭后,进程不能同步关闭 解决方…

[vscode]vscode运行cmake时候exe不执行而且前面多一些字符

遇到一个奇怪问题,你单独打开cmd去执行vscode编译过程序没问题,但是你在vscode确不会执行,这是因为vscode没有读取到电脑环境变量导致加载DLL失败,但是在vscode终端不会给你提示少DLL,需要你自己把DLL复制到exe目录即可解决问题。…

关于Cesium的常见需求整理之点位和弹窗(点位弹窗)

一、点位上图 ①在Cesium中,每个自定义的地图元素被视为一个entity对象,如果我们要添加点位到地图上,那就必须先创建一个entity对象。 var entity new Cesium.Entity({position: position, });以上代码我们创建了一个entity对象&#xff0…

Python Opencv实践 - 图像缩放

import cv2 as cv import numpy as np import matplotlib.pyplot as pltimg_cat cv.imread("../SampleImages/cat.jpg", cv.IMREAD_COLOR) plt.imshow(img_cat[:,:,::-1])#图像绝对尺寸缩放 #cv.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) #指定Size大…

CANoe自动化工程的搭建

基于XMLCAPL建立自动化工程 1、导入ini文件2、新建 Test Environment3、报告类型4、代码编写 1、导入ini文件 工程的配置的文件,配置DUT相关信息,具体视工程而编写内容。 2、新建 Test Environment 1、新建XML测试用例环境 2、导入XML测试用例文件 …

关于Neo4j的使用及其基本命令

关于Neo4j的使用 文章目录 关于Neo4j的使用1、启动方式2、创建新节点,节点内有属性3、创建关系4、查询节点5、查询关系6、删除两个节点的关系7、删除节点8、删除某个标签的全部关系9、某个节点添加属性10、删除节点某个属性 1、启动方式 进入bin目录: …

Web 服务器 -【Tomcat】的简单学习

Tomcat1 简介1.1 什么是Web服务器 2 基本使用2.1 下载2.2 安装2.3 卸载2.4 启动2.5 关闭2.6 配置2.7 部署 3 Maven创建Web项目3.1 Web项目结构3.2 创建Maven Web项目 4 IDEA使用Tomcat4.1 集成本地Tomcat4.2 Tomcat Maven插件 Tomcat 1 简介 1.1 什么是Web服务器 Web服务器是…

Neo4j笔记-数据迁移(导出/导入)

这里先说明以下几点: Neo4j在4.0下版本默认的库名是:graph.db Neo4j在4.0上版本默认的库名是:neo4j.db 不管是Neo4j,还是Neo4j Desktop,都会在bin目录下有neo4j、neo4j-admin软件。在conf目录下,有neo4j.…

unity实现角色体力功能【体力条+体力计算】

导读:实现功能 1、角色体力计算 2、角色疲劳动画 3、体力条制作、跟随 默认做好角色的idle/run/walk动画、切换和玩家输入,我使用的是新输入系统,动画时单变量混合树,参数Sports。 【每一部分功能根据自己需求观看哦】 1、角色体…

科研论文中SCI,SSCI ,CSSCI是什么

目录 1 SCI 2 SSCI 3 CSSCI 什么是SCI,SSCI ,CSSCI 目前,在国际科学界,如何正确评价基础科学研究成果已引起越来越广泛的关注。而被SCI、SSCI收录的科技论文的多寡则被看作衡量一个国家的基础科学研究水平、科技实力和科技论文…

HarmonyOS SDK开放能力,服务鸿蒙生态建设,打造优质应用体验

华为开发者大会2023(HDC.Together)于8月4日至6日在东莞松山湖举行,在HarmonyOS端云开放能力技术分论坛上,华为为广大开发者们介绍了HarmonyOS SDK开放能力在基础开发架构、功能特性等方面的变化之处,通过将常见的通用能…

市面上最好用的4款免费ETL工具推荐

一、ETL介绍 ETL流程是数据仓库建设的核心环节,它涉及从各种数据源中抽取数据,经过清洗、转换和整合,最终加载到数据仓库中以供分析和决策。在数据仓库国产化的背景下,ETL流程扮演着重要的角色,今天我们就来讲讲ETL流…

MATLAB算法实战应用案例精讲-【图像处理】图像分类模型Swin TrasnformerViT

目录 Swin Trasnformer 1. 模型介绍 2. 模型结构 3. 模型实现 4. 模型特点 5. 模型效果 ViT( Vision Transformer) 模型介绍 模型结构与实现 1. 图像分块嵌入 2. 多头注意力 3. 多层感知机(MLP) 4. DropPath 5. 基础模块 6. 定义ViT网络 …

两个数组的交集-C语言/Java

描述 给定两个数组 nums1 和 nums2 &#xff0c;返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序。&#xff08;1 < nums1.length, nums2.length < 1000&#xff0c;0 < nums1[i], nums2[i] < 1000&#xff09; 示例1 输入…

TCP和UDP

目录 TCP和UDP是什么&#xff1f; TCP和UDP有什么区别? 三次握手和四次挥手 解决大量TIME_WAIT问题的核心方法 TCP维护可靠的通信方式 TCP协议的长连接和短连接 长连接的保活机制 Syn泛洪攻击 拥塞控制 滑动窗口的原理 什么是粘包以及粘包的原因 粘包的处理方式 …

centos7使用yum安装gcc8

1 概述 cenots7自带的gcc版本为4.8.5&#xff0c;不方便编译一些软件&#xff0c;需要将gcc升级。升级gcc可以通过源码编译安装&#xff0c;也可以通过yum等软件管理工具来进行安装&#xff0c;本文介绍通过yum软件来安装gcc。 2 安装过程 2.1 安装scl源 yum install -y c…

IntelliJ IDEA快捷键大全

文章目录 1、构建/编译2、文本编辑3、光标操作4、文本选择5、代码折叠6、辅助编码7、上下文导航8、查找操作9、符号导航10、代码分析11、运行和调试12、代码重构13、全局 CVS 操作14、差异查看器15、工具窗口 本文参考了 IntelliJ IDEA 的官网&#xff0c;列举了IntelliJ IDEA&…

docker案例复现

$uri导致的CRLF注入漏洞 前期准备dockerdocker compose 漏洞配置 前期准备 docker 要完成这样的测试&#xff0c;需要我们有一定的环境&#xff0c;也就是需要大家去安装docker 更新系统软件包&#xff1a; sudo yum update 安装 Docker 的依赖软件包&#xff1a; sudo yum …

数据结构-队列(C语言的简单实现)

简介 队列也是一种数据结构&#xff0c;队列也可以用来存放数字每次只能向队列里将入一个数字&#xff0c;每次只能从队列里获得一个数字在队列中&#xff0c;允许插入的一段称为入队口&#xff0c;允许删除的一段称为出队口它的原则是先进先出(FIFO: first in first out)&…