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)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 布朗运动 金融学_布朗运动数学定义

    布朗运动 金融学_布朗运动数学定义作者:郑连虎来源:阿虎定量笔记正文:巴舍利耶:金融数学之父——要点:布朗运动、有效市场假说即使在信息爆炸的今天,想要了解法国数学家路易斯·巴舍利耶(LouisBachelier,1870-1946)的生活,依然缺乏资料。同许多思想超前的开拓者一样,巴舍利耶的研究成果在当时未能引起学界重视,直至50多年后被保罗·萨缪尔森…

    2022年9月30日
  • java 设置环境变量

    java 设置环境变量安装JDK向导进行相关参数设置。如图:正在安装程序的相关功能,如图:选择安装的路径,可以自定义,也可以默认路径。如图:成功安装之后,进行测试是否真的成功安装,点击【开始】—-【运行】—-输入CMD,在命令提示符里面输入“Java-version”并按回车键,出现下图,即为安装成功。如图:下面开始配置环境变量,右击【我的电脑】

    2022年5月11日
  • java和 javaw 以及 javaws的区别

    java ,javaw 和 javaws的区别:首先,所有的这些都是java的启动装置,java.exe经常使用,当使用命令行输出到window的时候,会有java.exe进程,通过任务管理器可以看到。通常我们执行一些小的java程序的时候会有java.exe进程在运行。javaw.exe对于我们也比较特殊,我们也能够通过任务管理器看到javaw.exe进程的运行。javaws通

    2022年4月4日
  • jar包如何防止反编译_jar包可以反编译成源码吗

    jar包如何防止反编译_jar包可以反编译成源码吗方法就是,向Jar注入无效代码(不合法的,或者根本不是代码的字符串)。那么无效的代码又怎么能正确运行呢?答案就是,你要保证你的代码永远不会执行到那一步。我作一个简单的例子说明:我们建立一个项目:packagecom.TestJar;publicclassMain{ publicstaticvoidmain(String[]args){ System.out.println(Info.g…

    2022年10月31日
  • 2018年NGINX最新版高级视频教程[通俗易懂]

    2018年NGINX最新版高级视频教程

    2022年2月9日
  • python进阶(8)多进程

    python进阶(8)多进程进程前置知识点进程:一个程序运行起来后,代码+用到的资源称之为进程,它是操作系统分配资源的基本单元。并发:指的是任务数多余cpu核数,通过操作系统的各种任务调度算法,实现用多个任务“一起”执行

    2022年7月28日

发表回复

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

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