Nginx专题:nginx+tomcat实现动静分离

简介: Nginx专题:nginx+tomcat实现动静分离

本文实验内容内nginx+tomcat实现网站的动静分离功能

案例环境

  • 主机信息

  • 架构图

案例实施:

部署tomcat服务器

  • 两台tomcat服务器上准备jdk和tomcat
  • 如果你没有,我记得我这上传一个
    jdk+tomcat
mkdir /tools
cd /tools
ls
apache-tomcat-8.5.70.tar.gz  jdk-8u181-linux-x64.tar.gz
  • 安装jdk
mkdir -p /app/java
tar xf jdk-8u181-linux-x64.tar.gz -C /app/
ln -s /app/jdk1.8.0_181/ /app/jdk
vim /etc/profile
export JAVA_HOME=/app/jdk
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
  • 部署tomcat
tar xf apache-tomcat-8.5.70.tar.gz -C /app
ln -s /app/apache-tomcat-8.5.70/ /app/tomcat
  • 启动tomcat并测试,tomcat默认启动8080端口
/app/tomcat/bin/startup.sh
ss -anpt | grep 8080
LISTEN     0      100       [::]:8080                  [::]:*                   users:(("java",pid=2375,fd=52))

25f8fd1220544de391a2645d66ab3af5.png553a70fdebf64c5f8adf3f55532d6e08.png

看到上面这个页面说明部署成功

  • 创建tomcat01站点主页
rm -rf /app/tomcat/webapps/ROOT/*
cat /app/tomcat/webapps/ROOT/index.jsp 
<%@ page language="java" import="java.util.*” pageEncoding="UTF-8"%>
<html>
  <head>
    <title>tomcat01</title>
  </head>
  <body>
    <% out.println("192.168.10.4,tomcat01");%>
    <img src="3333.jpg" />
  </body>
</html>
  • 创建womcat02站点主页
rm -rf /app/tomcat/webapps/ROOT/*
cat /app/tomcat/webapps/ROOT/index.jsp 
<%@ page language="java" import="java.util.*“ pageEncoding="UTF-8"%>
<html>
  <head>
    <title>tomcat02</title>
  </head>
  <body>
    <% out.println("192.168.10.5,tomcat02");%>
    <img src="3333.jpg" />
  </body>
</html>
  • 两台tomcat服务器重启服务
/app/tomcat/bin/shutdown.sh 
/app/tomcat/bin/startup.sh

部署nginx服务器

  • 安装nginx依赖
yum -y install gcc gcc-c++ autoconf pcre-devel make automake httpd-tools enopssl-devel
  • 配置nginx软件源
cat /etc/yum.repos.d/nginx.repo 
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
  • 安装nginx服务并启动
yum clean all
yum makecache
yum -y install nginx
systemctl enable --now nginx
  • yum安装的nginx已启用配置文件分离功能,我们使用默认的配置文件
cat /etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf;
# 修改默认配置文件
vim /etc/nginx/conf.d/default.conf
server {
    listen       80;
    server_name  192.168.10.3;
  • 创建站点首页
cd /usr/share/nginx/html/
# 准备一张图片
ls
3333.jpg  50x.html  index.html
# 配置站点首页
vim index.html
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
        <img src="3333.jpg" />
</body>
</html>
  • 重启nginx服务
systemctl reload nginx

呐,图片

部署nginx-lb服务器

  • 安装步骤与nginx01前三步相同
  • 创建负载均衡配置文件
vim /etc/nginx/conf.d/proxy.conf
upstream tomcat {
  server 192.168.10.4:8080;
  server 192.168.10.5:8080;
}
upstream static {
  server 192.168.10.3:80;
}
server {
  listen 80;
  server_name 192.168.10.2;
  location / {
    proxy_pass http://tomcat;
  }
  location ~* .*\.(png|gif|jpg)$ {
    proxy_pass http://static;
  }
}
  • 重启nginx服务
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
systemctl reload nginx
  • 原理为默认会访问tomcat后端服务器,但当网页中有静态图片时会在static后端中访问
  • 访问测试:达到一个负载均衡且动静分离的效果


目录
相关文章
|
1天前
|
缓存 Java 应用服务中间件
nginx的正向代理和反向代理以及tomcat
Nginx的正向代理和反向代理功能在不同的场景中具有重要作用,正向代理主要用于客户端访问控制和匿名浏览,而反向代理则用于负载均衡和高可用性服务。Tomcat作为Java Web应用服务器,与Nginx结合使用,可以显著提升Web应用的性能和稳定性。通过合理配置Nginx和Tomcat,可以构建高效、稳定和可扩展的Web服务架构。
39 11
|
5月前
|
应用服务中间件 nginx
Nginx Location 深入剖析及动静分离简易配置
Nginx Location 深入剖析及动静分离简易配置
80 3
|
4月前
|
Java 应用服务中间件 Shell
Nginx+Keepalived+Tomcat 实现Web高可用集群
Nginx+Keepalived+Tomcat 实现Web高可用集群
144 0
|
1月前
|
前端开发 Java 应用服务中间件
Tomcat和Nginx的资源路径映射
Tomcat和Nginx的资源路径映射
39 1
|
6月前
|
Ubuntu 前端开发 JavaScript
技术笔记:Ubuntu:一个部署好的tomcat应用(war包)怎么用Nginx实现动静分离?
技术笔记:Ubuntu:一个部署好的tomcat应用(war包)怎么用Nginx实现动静分离?
|
4月前
|
前端开发 Java 应用服务中间件
在Linux中,tomcat和nginx的区别是什么?
在Linux中,tomcat和nginx的区别是什么?
|
4月前
|
缓存 负载均衡 Java
Tomcat多实例及nginx反向代理tomcat
运行多个Tomcat实例并使用nginx作为反向代理
90 3
|
5月前
|
存储 缓存 前端开发
(三)Nginx一网打尽:动静分离、压缩、缓存、黑白名单、跨域、高可用、性能优化...想要的这都有!
早期的业务都是基于单体节点部署,由于前期访问流量不大,因此单体结构也可满足需求,但随着业务增长,流量也越来越大,那么最终单台服务器受到的访问压力也会逐步增高。时间一长,单台服务器性能无法跟上业务增长,就会造成线上频繁宕机的现象发生,最终导致系统瘫痪无法继续处理用户的请求。
180 1
|
6月前
|
前端开发 Java 应用服务中间件
若依分离板nginx配置
若依分离板nginx配置
464 1
|
7月前
|
负载均衡 前端开发 应用服务中间件
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400