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

目录

前言

一、案例

二、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+Tomcat的动静分离与负载均衡_第1张图片

二、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+Tomcat的动静分离与负载均衡_第2张图片

四、Nginx部署

192.168.238.139

yum install -y epel-release

yum install -y nginx

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

Nginx+Tomcat的动静分离与负载均衡_第3张图片

Nginx+Tomcat的动静分离与负载均衡_第4张图片

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

启动服务systemctl start Nginx

  

五、测试

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

Nginx+Tomcat的动静分离与负载均衡_第5张图片

Nginx+Tomcat的动静分离与负载均衡_第6张图片

Nginx+Tomcat的动静分离与负载均衡_第7张图片

也可以在终端里curl 

Nginx+Tomcat的动静分离与负载均衡_第8张图片

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

Nginx+Tomcat的动静分离与负载均衡_第9张图片

Nginx+Tomcat的动静分离与负载均衡_第10张图片


总结

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

你可能感兴趣的:(nginx,tomcat,运维)