随笔 - 1357  文章 - 0  评论 - 1104  阅读 - 1941万

Nginx+Tomcat实现动静分离

原理:Nginx处理静态资源请求,Tomcat处理动态请求,做到动静分离,提高了网站和系统性能。

效果
a、访问http://localhost,加载test.gif图片,图片存放在静态资源(如放在D:\div\nginx-1.9.14\html\img),直接从nginx获取请求,不用请求tomcat服务器。访问http://localhost代码:

复制代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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=ISO-8859-1">
<title>列表</title>
</head>
<body>
    我是首页入口
   <!-- test.gif图片是从nginx请求的 -->
<img src="/img/test.gif"> </body> </html>
复制代码

b、访问http://localhost/user/getPassword,动态请求tomcat服务器,从数据库获取密码显示到页面。


这里只需要修改Nginx的配置,让它通过Nginx处理静态请求,Tomcat处理动态请求。
1、nginx.conf配置文件

复制代码
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  10;
    include extra/upstream01.conf;
}
复制代码

 

2、extra/upstream01.conf文件,配置负载均衡、动态请求、静态文件请求等信息

复制代码
# 转发的服务器,upstream为负载均衡做准备
upstream tomcat_server {
    server localhost:8080; #localhost:8080为tomcat server访问路径
}
 
server {
    listen 80;
    server_name localhost; #tomcat主机域名
  
    #默认将请求转发到tomcat_server配置的upstream进行处理
    location / {
        proxy_pass http://tomcat_server;
    }

    #所有js,css相关的静态资源文件的请求由Nginx处理
    location ~.*\.(js|css)$ {
        root html; #所有js,css文件指定路径
        expires 12h; #页面缓存,设置过期时间为12小时,若要清除页面缓存删除浏览器缓存即可
    }

    #所有图片等多媒体相关静态资源文件的请求由Nginx处理
    location ~.*\.(html|jpg|jpeg|png|bmp|gif|ico|mp3|mid|wma|mp4|swf|flv|rar|zip|txt|doc|ppt|xls|pdf)$ {
        root html; #所有图片文件指定路径
        expires 7d; #页面缓存,设置过期时间为7天,若要清除页面缓存删除浏览器缓存即可
    }

}
复制代码

 

posted on   Ruthless  阅读(1200)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
历史上的今天:
2011-03-19 struts2+jquery+json集成
2011-03-19 struts2自定义拦截器二——模拟session超时的处理
2011-03-19 struts2自定义拦截器一——模拟登陆权限验证
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示