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)网页测试
在这里插入图片描述

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 不同火车车型的座位分布图片_火车硬卧号码分布图

    不同火车车型的座位分布图片_火车硬卧号码分布图本文内容全部来自于网络,记录在此,只是为后期便于寻找。————————————-分割线——————————–

  • ADB 操作命令详解及用法大全

    ADB 操作命令详解及用法大全ADB操作命令详解及用法大全一、ADB是什么?二、ADB有什么作用?三、ADB命令语法单一设备/模拟器连接多个设备/模拟器连接四、ADB常用命令4.1基本命令4.1.1查看adb的版本信息4.1.2启动adb4.1.3停止adb4.1.4以root权限运行adbd4.1.5指定adbserver的网络端口4.1.5查询已连接的设备/模拟器列表4.2设备连接管理4.2….

  • 第十七章《redis主从复制》

    第十七章《redis主从复制》

  • javah命令详解「建议收藏」

    javah命令详解「建议收藏」概述:最近在写c++/c的一个小的项目,需要打成动态库,供java使用。就对java调用c++/c代码做了简答了解,在此做记录。jni开发第一步,就是用javah命令生成生成c\c++头文件。javah命令参数详解cmd(默认配置jdkpath)执行javah-help如下图:-d和-o这两个参数用于设置生成的C\C++头文件的指定,该两参数选项不能同时使…

  • murmurhash算法_自我介绍的方式

    murmurhash算法_自我介绍的方式加密哈希和非加密哈希-MM是非加密哈希首先了解下加密哈希和非加密哈希,加密哈希函数旨在保证安全性,很难找到碰撞。即:给定的散列h很难找到的消息m;很难找到产生相同的哈希值的消息m1和m2。非加密哈希函数只是试图避免非恶意输入的冲突。作为较弱担保的交换,它们通常更快。如果数据量小,或者不太在意哈希碰撞的频率,甚至可以选择生成哈希值小的哈希算法,占用更小的空间。Smhasher-评价哈希算法的…

  • 你还在用命令看日志?用这款可视化工具简直太方便了!

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:废物大师兄 cnblogs.com/cjsblog/p/9476813.html Kibana是一个开源的分析…

发表回复

您的电子邮箱地址不会被公开。

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