LNMT与动静分离

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

前言

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
1. ##此实验暂时用不到数据库
2. 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来回访问。

目录
相关文章
|
8月前
|
缓存 前端开发 JavaScript
Nginx系列教程(15) - 动静分离概念
Nginx系列教程(15) - 动静分离概念
53 0
|
2月前
|
运维 前端开发 应用服务中间件
LNMP详解(八)——Nginx动静分离实战配置
LNMP详解(八)——Nginx动静分离实战配置
37 1
|
2月前
|
运维 前端开发 应用服务中间件
LNMP详解(七)——Nginx反向代理配置实战
LNMP详解(七)——Nginx反向代理配置实战
41 1
|
2月前
|
tengine Rust 负载均衡
反向代理学习笔记(一) Nginx与反向代理绪论
反向代理学习笔记(一) Nginx与反向代理绪论
|
网络协议 关系型数据库 MySQL
动静分离LNMP
动静分离LNMP
|
前端开发 JavaScript 应用服务中间件
nginx反向代理目录及动静分离公羊seo
目的:域名aa.com访问tomcat项目时,实现指定到固定目录下,直接访问aa.com时报500错误 架构:nginx+tomcat 各一台
159 0
nginx反向代理目录及动静分离公羊seo
|
缓存 应用服务中间件 nginx
Nginx 动静分离架构 个人笔记
Nginx 动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解成使用Nginx 处理静态页面,Tomcat、 Resin 出来动态页面。动静分离从目前实现角度来讲大致分为两种,
110 0
|
数据采集 移动开发 前端开发
|
应用服务中间件 nginx 缓存
Nginx 动静分离架构(学习笔记九)
一、原理 Nginx 动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解成使用Nginx 处理静态页面,Tomcat、 Resin 出来动态页面。
1291 0
|
Java 应用服务中间件 nginx
第六章:nginx实现动静分离
为什么要做动静分离呢? 减少不必要的请求消耗,减少请求延时。 怎么才能做到动静分离呢? 首先我们得想什么是静态东西,什么需要动态获取。我想大家心里肯定都很清楚,图片、影视、音乐等文件一般属于静态文件,带有.jsp .ftl .do 等后缀请求的应该都是动态获取。
1074 0