当前位置: 首页 > 编程笔记 >

Springmvc nginx实现动静分离过程详解

叶鸿振
2023-03-14
本文向大家介绍Springmvc nginx实现动静分离过程详解,包括了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实现动静分离实例讲解,包括了nginx实现动静分离实例讲解的使用技巧和注意事项,需要的朋友参考一下 为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原 来单个服务器的压力。 简单来说,就是使用正则表达式匹配过滤,然后交个不同的服务器。 1、准备环境 准备一个nginx代理 两个http 分别处理动态和静态。 1.配置编译安装的ngin

  • 本文向大家介绍部署Nginx+Apache动静分离的实例详解,包括了部署Nginx+Apache动静分离的实例详解的使用技巧和注意事项,需要的朋友参考一下 Nginx动静分离介绍 Nginx的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术 针对PHP的动静分离 静态页面交给Nginx处理 动态页面交给PHP-FPM模块或Apache处理 在Nginx的配置中,是通过loca

  • 本文向大家介绍Nginx实现动静分离的示例代码,包括了Nginx实现动静分离的示例代码的使用技巧和注意事项,需要的朋友参考一下 结合本文场景,需要安装Nginx和Java环境(运行SpringBoot项目)。 1.1 关于Linux系统安装Nginx可以参考我的文章---(传送门)。 1.2 本文SpringBoot使用了Thymeleaf模板,项目端口号为8888。 1.3 在本地/Users/

  • 本文向大家介绍Nginx + Tomcat实现请求动态数据和请求静态资源的分离详解,包括了Nginx + Tomcat实现请求动态数据和请求静态资源的分离详解的使用技巧和注意事项,需要的朋友参考一下 前言 上篇博客说明了Nginx在应用架构中的作用,以及负载均衡的思路。这篇实践一下其中的访问静态资源与访问动态资源的操作。 一、认识访问静态资源与访问动态资源的区别 静态资源:指存储在硬盘内的数据,固

  • 本文向大家介绍详解Ngigx+Tomcat配置动静分离,负载均衡,包括了详解Ngigx+Tomcat配置动静分离,负载均衡的使用技巧和注意事项,需要的朋友参考一下 由于公司使用过Ngnix,对于刚接触Nginx来说,感觉有些好奇,于是研究了下。 本人在windows下使用的版本是nginx-1.8.1: 1. 启动Ngnix 双击nginx-1.8.1文件夹中nginx.exe,当任务管理器中存在

  • 本文向大家介绍基于centos 6.5使用varnish实现网站动静分离,包括了基于centos 6.5使用varnish实现网站动静分离的使用技巧和注意事项,需要的朋友参考一下 一、Varnish简介 Varnish是一款高性能、开源的反向代理服务器和缓存服务器,其开发者Poul-Henning Kamp是FreeBSD核心的开发人员之一。 Varnish主要运行两个进程:Management进