Springmvc nginx实现动静分离过程详解
在下自己整理 ,如有错误请指正
一般的nginx的 静态文件的项目是这么配置的
location ~ .*\.(js|css)?$ { root E:/Workspaces/Idea15/demo/web/WEB-INF; expires 1h; }
但是如果这样配置,系统是读取不到对应的文件的,因为springmvc本身的前端模板配置了访问静态资源 Handles
那如何使用nginx搭理访问,实现动静分离
搭建nginx代理
第一阶段,修改nginx.conf 文件
#location / { #root html; #index index.html index.htm; #} location / { proxy_next_upstream http_502 http_504 error timeout invalid_header; proxy_pass http://127.0.0.1:8080; # 真实的客户端IP proxy_set_header X-Real-IP $remote_addr; # 请求头中Host信息 proxy_set_header Host $host; # 代理路由信息,此处取IP有安全隐患 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 真实的用户访问协议 proxy_set_header X-Forwarded-Proto $scheme; }
这样替换以后,就可以通过nginx 代理转到tomcat了,但是静态资源仍然是通过tomcat 来读取的
注意:不需要更改原始的项目文件,需要修改tomcat的配置,bin/server.xml 将端口号由80改回8080
处理静态文件
第二阶段,实现动静分离
在springmvc的前端控制器中配置如下:
<mvc:resources mapping="/image/**" location="/WEB-INF/"/>
<mvc:resources mapping="/css/**" location="/WEB-INF/"/>
<mvc:resources mapping="/js/**" location="/WEB-INF/"/>
在nginx中配置如下,demo是我的项目名称,以下三种方式都可以区分
location demo/image/ { root E:/Workspaces/Idea15/demo/web/WEB-INF; } location /css/ { root E:/Workspaces/Idea15/demo/web/WEB-INF; } location js/ { root E:/Workspaces/Idea15/demo/web/WEB-INF; }
但是写成 /demo/image/ 就是不行的
注:404页面等,如果在springmvc的项目中配置了,就不需要在这里接着配置了
最终的nginx.conf 页面代码如下:
#user nobody; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost; location / { proxy_next_upstream http_502 http_504 error timeout invalid_header; proxy_pass http://127.0.0.1:8080; # 真实的客户端IP proxy_set_header X-Real-IP $remote_addr; # 请求头中Host信息 proxy_set_header Host $host; # 代理路由信息,此处取IP有安全隐患 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 真实的用户访问协议 proxy_set_header X-Forwarded-Proto $scheme; } location image/ { root E:/Workspaces/Idea15/demo/web/WEB-INF; } location css/ { root E:/Workspaces/Idea15/demo/web/WEB-INF; } location js/ { root E:/Workspaces/Idea15/demo/web/WEB-INF; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
- Nginx配合Apache或Tomcat的动静分离基本配置实例
- 使用Nginx+uWsgi实现Python的Django框架站点动静分离
- 简单实现nginx+tomcat的反向代理与动静分离
- nginx实现tomcat动静分离详解
- nginx实现负载均衡和动静分离
- Nginx实现动静分离的示例代码
- 部署Nginx+Apache动静分离的实例详解
- nginx实现动静分离的示例代码
- nginx实现动静分离实例讲解
- Nginx动静分离实现案例代码解析
- Docker Nginx容器和Tomcat容器实现负载均衡与动静分离操作
- Nginx+Tomcat实现负载均衡、动静分离的原理解析
- Nginx负载均衡以及动静分离的原理与配置
- nginx实现动静分离的方法示例
- nginx从安装到配置详细说明(安装,安全配置,防盗链,动静分离,配置 HTTPS,性能优化)
- Nginx+Tomcat负载均衡及动静分离群集的实现
- 服务器的负载均衡nginx+tomcat实现动静分离
- Nginx动静分离配置实现与说明
相关文章
@MapperScan扫描包里混有@Service等问题如何解决
这篇文章主要介绍了@MapperScan扫描包里混有@Service等问题如何解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-03-03springboot HandlerIntercepter拦截器修改request body数据的操作
这篇文章主要介绍了springboot HandlerIntercepter拦截器修改request body数据的操作,具有很好的参考价值,希望对大家有所帮助。2021-06-06Java gRPC拦截器简单实现分布式日志链路追踪器过程详解
有请求的发送、处理,当然就会有拦截器的需求,例如在服务端通过拦截器统一进行请求认证等操作,这些就需要拦截器来完成,今天松哥先和小伙伴们来聊一聊gRPC中拦截器的基本用法,后面我再整一篇文章和小伙伴们做一个基于拦截器实现的JWT认证的gRPC2023-03-03SpringBoot favicon Chrome设置问题解决方案
在本篇文章里小编给大家分享的是关于SpringBoot favicon Chrome设置问题实例内容,小的朋友们可以参考学习下。2020-02-02
最新评论