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天,若要清除页面缓存删除浏览器缓存即可
}
}
分类:
Nginx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 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自定义拦截器一——模拟登陆权限验证