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天,若要清除页面缓存删除浏览器缓存即可 
    } 
 
}

 

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/6489.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论