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来回访问。

目录
相关文章
|
7月前
|
存储 缓存 JavaScript
Nodejs 第二十七章(动静分离)
Nodejs 第二十七章(动静分离)
58 0
|
7月前
|
运维 前端开发 应用服务中间件
LNMP详解(八)——Nginx动静分离实战配置
LNMP详解(八)——Nginx动静分离实战配置
76 1
|
网络协议 关系型数据库 MySQL
动静分离LNMP
动静分离LNMP
|
前端开发 JavaScript 应用服务中间件
nginx反向代理目录及动静分离公羊seo
目的:域名aa.com访问tomcat项目时,实现指定到固定目录下,直接访问aa.com时报500错误 架构:nginx+tomcat 各一台
185 0
nginx反向代理目录及动静分离公羊seo
|
tengine 运维 负载均衡
Tengine-Ngnix高级版
Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。 从2011年12月开始,Tengine成为一个开源项目,Tengine团队在积极地开发和维护着它。Tengine团队的核心成员来自于淘宝、搜狗等互联网企业。Tengine是社区合作的成果,我们欢迎大家参与其中,贡献自己的力量。
409 0
|
数据采集 移动开发 前端开发
|
Web App开发 应用服务中间件 Linux
|
Web App开发 测试技术 应用服务中间件