LNMT与动静分离

news2024/11/27 12:36:09

目录

前言

一、简要思路

二、NGINX的配置参考

1、location

2、rewirte

三、动静分离配置(单机配置)

1、Tomcat配置

2、配置NGINX

3、安装mariadb

4、测试

Tomcat8080​编辑

Tomcat8081

访问不存在的页面



前言

LNMT(Linux + Nginx + MySQL + Tomcat)是一种常见的Web应用架构,它由Linux操作系统作为基础,使用Nginx作为反向代理服务器和静态资源服务器,MySQL作为数据库,Tomcat作为应用服务器。

动静分离是一种优化Web应用性能的策略,它将动态内容和静态内容分别处理和分发。在LNMT架构中,Nginx起到了动静分离的作用。

具体而言,Nginx通过配置来区分处理动态请求和静态请求。对于静态请求(如HTML、CSS、JavaScript、图片等),Nginx可以直接处理并返回给客户端,而无需将请求转发给Tomcat应用服务器。这样可以减轻Tomcat的负载压力,并提高静态资源的访问速度。

对于动态请求(如Servlet、JSP等),Nginx会将请求转发给后端的Tomcat应用服务器进行处理,并将处理结果返回给客户端。Nginx作为反向代理服务器可以根据请求的URL或其他规则进行请求的负载均衡,将请求分发给多个Tomcat实例,以实现高可用和提高并发处理能力。

动静分离可以提高Web应用的性能和扩展性,通过将静态资源由Nginx直接提供,可以减轻后端应用服务器的负载,提高响应速度,节省服务器资源。同时,通过Nginx的负载均衡机制,可以将请求分发到多个应用服务器,提高系统的稳定性和可靠性。


一、简要思路

LNMT
    部署tomcat
        单机部署
            分别安装两个tomcat
            在第二个tomcat中修改配置文件server.xmll,所有端口号都更改
    部署nginx
        yum install -y epel-release
        yum install -y nginx
    部署Mariadb
        yum install mariadb-server
    配置Nginx
        实现反向代理

二、NGINX的配置参考

1、location

=  精确匹配
^~ 不用正则的字符串匹配
~ 正则匹配,且区分大小写
~*  不区分大小写的正则匹配
/  任意匹配,无论如何都会满足匹配条件,后面不能有任意字符串

2、rewirte

2.1应用场景:

进行前端的反向代理
新旧域名的更替
防盗链

2,2书写位置
    server
    location
    if条件
    若要匹配后就停止向下匹配,加入break关键字

2.3重写条目写法
    rewirte  “^表达式” 重写路径(可以是本地的访问目录,也可以是远程的URL)

2.4返回状态码: permanent,304 ;redirect,302

2.5示例

location / {

                root html;

                index index.html index.php;

                if ($host = "www.jx.com"){

                        rewrite  ^/(.*)$  http://192.168.115.131/$1 permanent;

                }

三、动静分离配置(单机配置)

本机地址192.168.115.131

1、Tomcat配置

1.1、安装Tomcat网址Apache Tomcat® - Welcome!

####解压
tar -xf apache-tomcat-8.5.16.tar.gz
###将解压后的包放入/usr
mv apache-tomcat-8.5.16 /usr/local/tomcat
###建立软联建
ln -s /usr/local/tomcat/bin/shutdown.sh /usr/bin/cat1down ##停止
ln -s /usr/local/tomcat/bin/startup.sh /usr/bin/cat1up    ##启动
######做完这些准备配置第二台Tomcat
cd /usr/local
cp tomcat tomcat2
######建立Tomcat2的软连接
ln -s /usr/local/tomcat2/bin/shutdown.sh /usr/bin/cat2down ##停止
ln -s /usr/local/tomcat2/bin/startup.sh /usr/bin/cat2up    ##启动
###修改Tomcat2的配置文件修改端口,避免冲突
vim /usr/local/tomcat2/conf/tomcat-users.xml
###分别写入
echo 192.168.115.131:8080 > /usr/local/tomcat/webapps/ROOT/index.jsp
echo 192.168.115.131:8081 > /usr/local/tomcat2/webapps/ROOT/index.jsp
###启动所有Tomcat
cat1up 
cat2up

2、配置NGINX

##安装NGINX
yum -y install epel-release.noarch
yum -y install nginx
##修改配置文件
vim /etc/nginx/nginx.conf
##在server字段插入
upstream tomcat {
                server 192.168.115.131:8080;
                server 192.168.115.131:8081;
        }
##在http字段插入
location ~ \.jsp$ {                                ####这里是jsp
                proxy_pass http://tomcat;
                proxy_set_header  Host $host;
        }
        location / {
                root    /usr/share/nginx/html;
                index   index.html;
        }
##退出保存,重启NGINX服务

3、安装mariadb

##此实验暂时用不到数据库
yum -y install mariadb mariadb-server

4、测试

这是NGINX

Tomcat8080

Tomcat8081

 

 其实这里我没有去换我们的端口,只是访问了Tomcat的动态页面,说明静态页面找NGINX,动态的找Tomcat。这里刷新就会在8081/8082端口来回切换,这里体现了NGINX的负载均衡。

访问不存在的页面

下面,我们可以在NGINX的配置文件中进行设置可以访问jpg,然后将2张图片放入/usr/local/tomcat/webapps/ROOT并且改名为index.jpg

###修改NGINX的配置文件
vim /etc/nginx/nginx.conf
###修改server字段
 location ~ \.(jsp|jpg)$ {                        ###添加jpg格式
                proxy_pass http://tomcat;
                proxy_set_header  Host $host;
        }
        location / {
                root    /usr/share/nginx/html;
                index   index.html;
        }
##保存退出并重启NGINX

访问刚才不存在的页面,并ctrl+F5深度刷新,他会在8080/8081来回访问

 

 

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

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

相关文章

什么是网络取证(Network Forensics)

企业采用新技术来检查其网络安全是否存在零日漏洞,与立即指示问题的物理层不同,黑客攻击尝试可能会被忽视并变得严重,直到对网络流量有一个整体的可见性。通过实时监控来跟踪其源和目标的流量,以查明问题或潜在问题的根源。 什么…

CY3-DBCO活性荧光染料-星戈瑞

​欢迎来到星戈瑞荧光stargraydye!小编带您盘点: CY3-DBCO是一种活性荧光染料,它是由Cyanine3(CY3)荧光染料与DBCO(dibenzocyclooctyne)官能团共轭而成的化合物。 活性荧光染料通常是指具有特定…

Android RecyclerView 之 列表宫格布局的切换

前言 RecyclerView 的使用我就不再多说,接下来的几篇文章主要说一下 RecyclerView 的实用小功能,包括 列表宫格的切换,吸顶效果,多布局效果等,今天这篇文章就来实现一下列表宫格的切换,效果如下 一、数据来…

k8s的交付与部署

一 k8s的概念 1.1 k8s k8s是一个轻量级的,用于管理容器化应用和服务的平台。通过k8s能够进行应用的自动化部署和扩容缩容。 1.2 k8s核心部分 1.prod: 最小的部署单元;一组容器的集合;共享网络;生命周期是短暂的; …

ChatGPT在医疗领域可应用于改善与患者的沟通

注意:本信息仅供参考,发布该内容旨在传递更多信息的目的,并不意味着赞同其观点或证实其说法。 自从ChatGPT在2022年末对公众开放以来,OpenAI的这款生成式AI聊天机器人在医疗领域展示出了巨大潜力。它已经通过了美国医学执照考试&a…

3. 运行时数据区及程序计数器

3.1. 运行时数据区 3.1.1. 概述 本节主要讲的是运行时数据区,也就是下图这部分,它是在类加载完成后的阶段 当我们通过前面的:类的加载-> 验证 -> 准备 -> 解析 -> 初始化 这几个阶段完成后,就会用到执行引擎对我们…

Centos7更新glibc2.18

Centos7更新glibc2.18 查看glibc版本下载解压glibc2.18编译安装结果验证 查看glibc版本 # 查看glibc版本 ldd --version下载解压glibc2.18 参考: https://blog.csdn.net/qq_39295044/article/details/86685789 https://blog.csdn.net/myhes/article/details/106923039 # 下载…

安装配置mariadb

记录下安装配置mariadb的经历。 环境:ubuntu22 一、apt在线安装 apt代理配置 APT是Ubuntu系统中用于安装和升级软件包的工具,如果本地没有可用的软件包,APT将会连接到远程软件包服务器下载软件包。在某些情况下,用户需要将APT的…

UE5- socket客户端写法

# 实现目标 ue5 c 实现socket客户端,读取服务端数据,并进行解析 #实现步骤 {projectName}.Build.cs里增加 "WebSockets","JsonUtilities", "Json"配置信息,最终输出如下: using UnrealBuildTool;…

msvcr110.dll怎么安装?多种方法教你快速修复msvcr110.dll文件

最近很多小伙伴在咨询,msvcr110.dll怎么安装这个问题,其实要安装这个还是比较简单的,而且方法有很多种,每一种方法都有各种的优势,我们只要选择适合我们的一种方法就可以了。好了,下面我们一起来了解一下快…

微信小程序云开发-云存储文件ID转http

一、前言 云开发的云储存文件默认是以cloudID的形式读取的,但是这种读取方式只能在微信小程序或内嵌H5中使用。 所以如果需要在其他地方使用,例如浏览器或网站等其他端读取文件的时候,需要转换成普通的http链接。 目前官方提供有转换的接口…

智慧矿山2.0:煤矿智能化综合管理AI大数据监管平台建设方案设计

一、行业背景 能源与煤矿是我国国民经济的重要物质生产部门和支柱产业之一,同时也是一个安全事故多发的高危行业,施工阶段的现场管理对工程成本、进度、质量及安全等至关重要。煤矿智能化既是未来趋势,更是产业发展需求,建设智慧…

五个技巧,助你有效管理员工信息

对于大多数人力资源部门来说,在时间表、工资单记录和绩效评估之间管理员工信息是一项艰巨的任务。要做到正确管理并不那么容易,尤其是对于员工人数众多的企业而言。 本文提供了有效管理员工信息的关键技巧。无论是小企业主还是人力资源专业人员&#xf…

简单明了的Git入门

一、下载安装git 1、根据连接下载 git-scm.com 一路点击“下一步”,然后取消“view Release Notes” 二、配置git 安装成功后,鼠标右键点击第二个“Git” 配置用户名 git config --global user.name Mihu 配置邮箱(注意:这个…

Wiki在企业内部的应用和管理,如何构建有效的Wiki系统?

Wiki 是一个协同著作平台或称开放编辑系统。我们可以用Wiki来建设帮助系统,知识库系统。国内公共wiki最著名就是百度百科,国外则是基维百科;Wiki最著名的例子之一是维基百科,它在MediaWiki上运行,任何拥有Web浏览器的人…

东盟全面覆盖?长城战略部署核心区域市场,首个百万粉丝国产品牌

根据最新消息,长城汽车在东南亚地区取得了巨大的成功,成功进军了亚洲最大的汽车市场之一-印度尼西亚。这标志着长城汽车已经实现了东盟核心市场的全面覆盖,成为全球布局的重要一步。 在过去的几年里,长城汽车在东盟地区的市场布局…

Nacos服务创建与访问测试

1.Nacos概述: Nacos(DynamicNaming and Configuration Service)是一个应用于服务注册与发现、配置管理的平台。它孵化于阿里巴巴,成长于十年双十一的洪峰考验,沉淀了简单易用、稳定可靠、性能卓越的核心竞争力。其官网地址如下&a…

30 WEB漏洞-RCE代码及命令执行漏洞全解

目录 前言代码执行命令执行代码执行函数(PHP)命令执行函数修复方法演示案例墨者靶场黑盒功能点命令执行-应用功能墨者靶场白盒代码及命令执行-代码分析墨者靶场黑盒层RCE漏洞检测-公开漏洞Javaweb-Struts2框架类RCE漏洞-漏洞层面一句话Webshell后门原理代…

Ubuntu20.04下安装搜狗输入法Linux版

Ubuntu20.04下安装搜狗输入法Linux版 参考搜狗输入法的官网安装指南; 第一步:打开搜狗输入法官网; https://shurufa.sogou.com/ 点击X86_64后将会自动跳转到搜狗输入法的安装指南中; 安装指南 Ubuntu搜狗输入法安装指南 搜狗…