springmvc搭配nginx 实现动静分离
2023-09-14 08:58:22 时间
在下自己整理 ,如有错误请指正
一般的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返回422状态码的经历
- springboot框架的理解_谈谈你对springmvc的理解
- Spring学习笔记(八)——SpringMVC响应数据和结果视图
- SpringMVC之响应数据和结果视图
- Nginx 配置中nginx和alias的区别分析
- 面试:第八章:SpringMVC、Springboot、Mybatis、Dubbo、Zookeeper、Redis、Elasticsearch、Nginx 、Fastdfs、ActiveMQ
- 重识Nginx - 05 热部署_不停机更换新版本的nginx
- SpringMvc启动源码解析
- ajax长轮询 spring mvc,springmvc ajax 长轮询
- 面试题: SpringMVC的执行流程?
- 注解配置SpringMVC
- Nginx 的配置文件 nginx.conf
- SpringMVC(十二):SpringMVC文件下载
- 一个SpringMVC接口能返回JSON又能返回XML? 安排!
- SpringMVC 邮件发送配置及代码详解编程语言
- SpringMVC通过邮件找回密码功能的实现详解编程语言
- SpringMVC视图解析器详解编程语言
- SpringMvc多文件上传简单实现详解编程语言
- springMVC拦截器和过滤器总结详解编程语言
- MySQL与Nginx实现高性能的网络连接(mysql连接nginx)
- Linux查看Nginx的最新版本号(linux查看nginx版本)
- Linux下启动Nginx服务的简易步骤(linux启动nginx)
- 配置Linux下删除Nginx配置的步骤(linux删除nginx)
- Nginx网站架构实战——03、nginx虚拟主机配置
- Redis优势助力Nginx提速(redis读nginx)