时间:2021-05-20
在下自己整理 ,如有错误请指正
一般的nginx的 静态文件的项目是这么配置的
但是如果这样配置,系统是读取不到对应的文件的,因为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; } }}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
windows下测试nginx+tomcat实现javaweb项目的动静分离1.安装nginx,访问静态资源安装成功后,启动nginx,浏览器输入http://
1.什么是动静分离所谓动静分离就是通过nginx(或apache等)来处理用户端请求的静态页面,tomcat(或weblogic)处理动态页面,从而达到动静页面
1.为什么要实现动静分离1)nginx的处理静态资源能力超强主要是nginx处理静态页面的效率远高于tomcat的处理能力,如果tomcat的请求量为1000次
本文设计的动静分离结构在本文中,我们将静态资源放在A主机的一个目录上,将动态程序放在B主机上,同时在A上安装Nginx并且在B上安装Tomcat。配置Nginx
上一篇我们介绍了nginx实现的负载均衡和动静分离,可看这边。我们在文章的末尾说到,负载均衡需要面临的一个问题是内存数据的同步。例如:我有A,B两台服务器做了负