Tomcat动静分离

Tomcat动静分离前言Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,其特点是占有内存少,并发能力强。上篇博客利用Nginx反向代理的功能,实现了Tomcat的集群配置,本文使用的是Nginx的网页处理功能,实现与Tomcat的动静分离静态页面交给Nginx处理,动态页面交给Tomcat处理实验环境1、实验拓扑2、IP地址分配主机名IP地址…

大家好,又见面了,我是你们的朋友全栈君。

前言

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,其特点是占有内存少,并发能力强。
上篇博客利用Nginx反向代理的功能,实现了Tomcat的集群配置,本文使用的是Nginx的网页处理功能,实现与Tomcat的动静分离
静态页面交给Nginx处理,动态页面交给Tomcat处理

实验环境

1、实验拓扑
在这里插入图片描述
2、IP地址分配

主机名 IP地址
Nginx 192.168.7.128
Tomcat 192.168.7.129

实验过程

1、安装Tomcat
(1)安装环境包,创建nginx用户

[root@nginx ~]# yum install gcc gcc-c++ pcre-devel zlib-devel make -y
[root@nginx ~]# useradd -M -s /sbin/nologin nginx

(2)编译安装nginx

[root@nginx Nginx]# tar zxvf nginx-1.12.2.tar.gz -C /opt
[root@nginx Nginx]# cd /opt/nginx-1.12.2/
[root@nginx nginx-1.12.2]#./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

[root@nginx nginx-1.12.2]# make && make install

(3)nginx命令执行路径优化,使系统能够自动识别

[root@nginx ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
#创建nginx启动脚本
[root@nginx ~]# vim /etc/init.d/nginx
case "$1" in
start)
    $PROG
    ;;
stop)
    kill -s QUIT $(cat $PIDF)
    ;;
restart)
     $0 stop
     $0 start
     ;;
reload)
     kill -s HUP $(cat $PIDF)
     ;;
*)
     echo "Usage: $0 {start|stop|restart|reload}"
     exit 1
esac
exit 0

[root@nginx ~]# chmod +x /etc/init.d/nginx
[root@nginx ~]# chkconfig --add nginx
[root@nginx ~]# service nginx start	

2、安装Tomcat
(1)安装JDK软件,添加环境变量

[root@tomcat Tomcat]# rpm -ivh jdk-8u201-linux-x64.rpm
[root@tomcat Tomcat]# vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=$JAVA_HOME/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

[root@tomcat Tomcat]# source /etc/profile
[root@tomcat Tomcat]# java -version		//查看版本
java version "1.8.0_201"

(2)安装Tomcat

[root@tomcat Tomcat]# tar zxvf apache-tomcat-9.0.16.tar.gz -C /usr/local/
[root@tomcat Tomcat]# cd /usr/local/
[root@tomcat local]# mv apache-tomcat-9.0.16/ tomcat

(3)tomcat命令执行路径优化,使系统能够自动识别

[root@tomcat local]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin
[root@tomcat local]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin

3、配置动静分离(在nginx服务器上配置)
将对java文件请求转发到Tomcat处理
在nginx配置文件nginx.conf中修改

[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf
server {
···省略···
location ~.*.jsp$ {								//匹配以jsp结尾的文件名
  proxy_pass http://192.168.7.129:8080;		//转发到Tomcat服务器
  proxy_set_header Host $host;					//匹配头部信息
}

4、创建测试网页
(1)在nginx上操作

[root@nginx ~]# vim /usr/local/nginx/html/index.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>静态页面</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>静态网页</h1>
<p>这是一个静态页面</p>
</body>
</html>

(2)在Tomcat上操作

[root@tomcat local]# mkdir /usr/local/tomcat/webapps/test
[root@tomcat local]# vim /usr/local/tomcat/webapps/test/index.jsp
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<!DOCTYPE html PUBLIC "-//W3C/DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/ html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>动态网页</title>
</head>
<body>
<div>动态网页</div>
</body>
</html>

5、访问测试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6、nginx处理静态图片,tomcat处理动态页面
tomcat指路径,nginx放图片
(1)在Tomcat上操作

[root@tomcat local]# vim /usr/local/tomcat/webapps/test/index.jsp
在body内引入图片
<body>
<div>动态网页</div><br>
<img src="37.jpg">
</body>

(2)在nginx上操作

[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf
location ~.*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {
  root html;
  expires 30d;
}

#创建与java项目相同的目录名称
[root@nginx ~]# mkdir /usr/local/nginx/html/test

(3)网页测试
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134719.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 学生选课管理系统的数据库设计_选课系统数据库设计

    学生选课管理系统的数据库设计_选课系统数据库设计学生选课管理系统的设计为选课及成绩管理提供了一个良好的工具,此系统基本实现了设计的要求,即登录系统(通过用户名和密码),管理(录入、查询、修改和删除)学生、课程基本资料,管理(录入、查询、修改和删除)学生所选课程成绩,统计每个学生的总分、平均分以及排名,修改用户密码等功能。在此基础上,我还对系统进行了改进,特别是加强了查询的功能,使我们能更直观、有效地查询到我们想要的数据。

    2022年10月15日
    0
  • ETL的开发过程[通俗易懂]

    ETL的开发过程[通俗易懂]在生产环境中,使用shell脚本完成一次etl操作1.定义一个etl函数,里面传入json行数据,用json.loads加载行数据,并对行数据进行判断,如果没有行数据,或data字段没有在行数据里,就直接返回空的结果,否则就继续往下执行2.接着获取行里的数据,用for循环判断,如果包含某个值,我就将变量赋值取出,装在集合容器里3.设置sparksession会话,并ena…

    2022年5月23日
    31
  • treeTable v 1.4.2

    treeTable v 1.4.2treeTablev1.4.2简介treeTable是跨浏览器、性能很高的jquery的树表组件,它使用非常简单,只需要引用jquery库和一个js文件,接口也很简单。优点兼容主流浏览器:支持IE6和IE6+,Firefox,chrome,Opera,Safari接口简洁:在普通表格的基础上增加父子关系的自定义标签就可以组件性能高:内部实现了只绑

    2022年6月11日
    27
  • 2021.7 goland 激活码[免费获取]

    (2021.7 goland 激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月21日
    78
  • 基于matlab的语音信号频谱分析_声音信号的数字化过程

    基于matlab的语音信号频谱分析_声音信号的数字化过程1.概述随着软硬件技术的发展,仪器的智能化与虚拟化已成为未来实验室及研究机构的发展方向[1]。虚拟仪器技术的优势在于可由用户定义自己的专用仪器系统,且功能灵活,很容易构建,所以应用面极为广泛。基于计算机软硬件平台的虚拟仪器可代替传统的测量仪器,如示波器、逻辑分析仪、信号发生器、频谱分析仪等[2]。从发展史看,电子测量仪器经历了由模拟仪器、智能仪器到虚拟仪器,由于计算机性能的飞速发展,已把传

    2022年8月11日
    3
  • 用js来实现那些数据结构02(数组篇02-数组方法)

    上一篇文章简单的介绍了一下js的类型,以及数组的增删方法。这一篇文章,我们一起来看看数组还有哪些用法,以及在实际工作中我们可以用这些方法来做些什么。由于其中有部分内容并不常用,所以我尽量缩小篇幅。在这

    2022年3月25日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号