Nginx实现动静分离

简介: 利用Nginx实现简单动静分离

本文利用Nginx实现简单动静分离,本文使用Nginx和一个SpringBoot简单Web应用实现。

1.准备工作。

结合本文场景,需要安装Nginx和Java环境(运行SpringBoot项目)。

1.1 关于Linux系统安装Nginx可以参考我的文章---(传送门)。

1.2 本文SpringBoot使用了Thymeleaf模板,项目端口号为8888。

1.3 在本地/Users/dalaoyang/Downloads/static文件内存放了jquery.js

2.什么是动静分离?

在弄清动静分离之前,我们要先明白什么是动,什么是静。

在Web开发中,通常来说,动态资源其实就是指那些后台资源,而静态资源就是指HTML,JavaScript,CSS,img等文件。

一般来说,都需要将动态资源和静态资源分开,将静态资源部署在Nginx上,当一个请求来的时候,如果是静态资源的请求,就直接到nginx配置的静态资源目录下面获取资源,如果是动态资源的请求,nginx利用反向代理的原理,把请求转发给后台应用去处理,从而实现动静分离。

在使用前后端分离之后,可以很大程度的提升静态资源的访问速度,同时在开过程中也可以让前后端开发并行可以有效的提高开发时间,也可以有些的减少联调时间 。

3.项目配置

修改SpringBoot应用启动类,做简单跳转,使访问根路径可以跳转到index.html,如下代码所示。

@SpringBootApplication
@Controller
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

    @GetMapping("/")
    public String index(){
        return "index";
    }
}

index.html代码如下所示,注意引入jquery.js,在引用成功会使用jquery给div赋值,代码如下所示。

<!DOCTYPE html>
<!--解决th报错 -->
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>thymeleaf</title>
</head>
<script type="text/javascript" src="jquery.js"></script>
<body>
<h1>这是一个静态页面</h1>
<div id="test_div"></div>
</body>

<script type="text/javascript">
    $('#test_div').html('引用jquery.js成功');
</script>

</html>

项目结构如下所示,可以看到没有jquery.js,我们要做的就是使用Nginx来访问jquery.js。

4.Nginx配置

修改nginx.conf配置,其中第一个location负责处理后台请求,第二个负责处理静态资源,如下所示。

worker_processes  1;

events {
    worker_connections  1024;
}

http {

   server {
       listen       10000;
       server_name  localhost;
      
      #拦截后台请求
      location / {
        proxy_pass http://localhost:8888;
        proxy_set_header X-Real-IP $remote_addr;
      }

      #拦截静态资源
      location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|js|css)$ {
        root /Users/dalaoyang/Downloads/static;
       }

    }

}

5.测试

启动SpringBoot应用,启动Nginx。

在浏览器访问http://localhost:10000/,可以看到如下图所示。

通过图中红框内容都可以看出来引用静态资源成功了。


6.总结

最近一直在看有关nginx的东西,最近一段时间会持续更新相关nginx的文章,如果大家感兴趣可以持续关注。

目录
相关文章
|
25天前
|
运维 前端开发 应用服务中间件
LNMP详解(八)——Nginx动静分离实战配置
LNMP详解(八)——Nginx动静分离实战配置
28 0
|
3月前
|
负载均衡 安全 前端开发
百度搜索:蓝易云【Nginx与Tomcat负载均衡-动静分离教程】
这些是将Nginx与Tomcat结合使用实现负载均衡和动静分离的基本步骤。根据您的需求和具体环境,可能还需要进行其他配置和调整。请确保在进行任何与网络连接和安全相关的操作之前,详细了解您的网络环境和安全需求,并采取适当的安全措施。
49 1
|
5月前
|
缓存 前端开发 JavaScript
Nginx系列教程(15) - 动静分离概念
Nginx系列教程(15) - 动静分离概念
42 0
|
4月前
|
负载均衡 前端开发 应用服务中间件
【Linux】Nginx安装使用负载均衡及动静分离(前后端项目部署),前端项目打包
【Linux】Nginx安装使用负载均衡及动静分离(前后端项目部署),前端项目打包
381 0
|
3月前
|
缓存 应用服务中间件 nginx
【Nginx】动静分离
【1月更文挑战第25天】【Nginx】动静分离
|
8月前
|
负载均衡 Java 应用服务中间件
Nginx+Tomcat负载均衡、动静分离群集
Nginx+Tomcat负载均衡、动静分离群集
|
8月前
|
运维 负载均衡 中间件
【运维知识进阶篇】集群架构-Nginx动静分离详解
【运维知识进阶篇】集群架构-Nginx动静分离详解
64 0
|
4月前
|
负载均衡 前端开发 应用服务中间件
百度搜索:蓝易云【Nginx使用之反向代理、负载均衡、动静分离教程。】
通过这样的配置,Nginx将根据请求的URL路径选择是将请求转发到后端服务器还是直接返回静态资源文件。
139 0
|
9月前
|
负载均衡 Java 应用服务中间件
Nginx专题:nginx+tomcat实现动静分离
Nginx专题:nginx+tomcat实现动静分离
101 0
|
4月前
|
负载均衡 前端开发 应用服务中间件
Nignx及负载均衡&动静分离->nginx简介,nginx搭载负载均衡提供前后分离后台接口数据上,nginx搭载负载均衡提供前后分离后台接口数据下,前端项目打包,前端项目Linux部署
Nignx及负载均衡&动静分离->nginx简介,nginx搭载负载均衡提供前后分离后台接口数据上,nginx搭载负载均衡提供前后分离后台接口数据下,前端项目打包,前端项目Linux部署
46 0