Nginx+Tomcat的动静分离与负载均衡

本文介绍了如何使用Nginx作为负载均衡器和Tomcat的后端服务器,涉及Nginx的高级location规则、rewirte功能,以及Tomcat的部署和配置。重点讲解了如何通过正则匹配实现动态页面转发。
摘要由CSDN通过智能技术生成

目录

前言

一、案例

二、Nginx的高级用法

三、tomcat部署

四、Nginx部署

五、测试

总结



前言

通常情况下,一个 Tomcat 站点由于可能出现单点故障及无法应付过多客户复杂多样的请求等情况,不能单独应用于生产环境下,所以我们需要一套更可靠的解决方案。

Nginx 是一款非常优秀的 http 服务器软件,它能够支持高达 5000 个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存、CPU 等系统资源消耗非常低。

目前很多大型网站都应用 Nginx 服务器作为后端网站的反向代理及负载均衡器,来提升整个站点的负载并发能力。
 


一、案例

案例由 Nginx 作为负载均衡器,Tomcat 作为应用服务器的负载集群的设置方法。

Nginx服务器作为前端,Tomcat服务器作为后端,web页面请求由Nginx服务来进行转发,但不是把所有的web请求转发,而是静态页面请求Nginx服务器自己来处理,动态页面请求则转发给后端的Tomcat服务器来处理。(动态页面使用正则匹配jsp结尾的请求,使用proxy_pass转发给Tomcat服务器)

192.168.238.139

192.168.238.140

二、Nginx的高级用法

location

=精确匹配
^~不用正则的字符串匹配
~正则匹配,且区分大小写
~*不区分大小写的正则匹配
/任意匹配,无论如何都会满足匹配条件,后面不能有任意字符串(location匹配后的目录,当访问时访问url路径后的对应目录名称)

rewirte

应用场景进行前端的反向代理
新旧域名的更替
防盗链
书写位置server
location
if条件
若要匹配后就停止向下匹配,加入break关键字
重写条目写法rewirte  “^表达式” 重写路径(可以是本地的访问目录,也可以是远程的URL)
返回状态码permanent,301 ;redirect,302


        

三、tomcat部署

192.168.238.140

安装两台tomcat为tomcat1和tomcat2

tar xf  apache-tomcat-8.5.16.tar.gz

mv apache-tomcat-8.5.16 /usr/local/tomcat1

cp /usr/local/tomcat1  /usr/local/tomcat2

优化命令启动关闭命令

ln -s /usr/local/tomcat1/bin/startup.sh /usr/local/bin/tomcat1.up

ln -s /usr/local/tomcat1/bin/shutdown.sh /usr/local/bin/tomcat1.down

ln -s /usr/local/tomcat2/bin/startup.sh /usr/local/bin/tomcat2.up

ln -s /usr/local/tomcat2/bin/shutdown.sh /usr/local/bin/tomcat2.down

修改tomcat2的端口

分别编辑页面访问内容tomcat1和tomcat2(tomcat/webapps/ROOT/index.jsp)

启动服务        tomcat1.up        tomcat2.up

四、Nginx部署

192.168.238.139

yum install -y epel-release

yum install -y nginx

vim /etc/nginx/nginx.conf在httpserver中加入

echo OK > /usr/share/nginx/html/index.html

启动服务systemctl start Nginx

  

五、测试

用Nginx的IP地址进行动态页面访问

也可以在终端里curl 

 使用站点不存在的资源进行访问,查看报错信息对应的服务即可

拓展(感兴趣的小伙伴可以进行实验)

将此内容进行双击热备

 再搭建一个同主用Nginx配置服务器一样配置的备用Nginx服务器,两者都安装keepalived,构成双击热备(注意优先级,vrrp实例名称,状态等内容)。在master宕机的情况下,slave将通过虚拟IP来接管master的工作。


总结

为了方便查看和以后部署Mysql,php服务不与Tomcat起冲突,进行了分开部署,也可以都部署在同一台机器上。重点在Nginx的高级location上,正则匹配和任意匹配的用法;upstream是将请求转发到后端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值