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