Nginx极简入门(九)Nginx实现动静分离!

简介: 前面介绍了Nginx的负载均衡,一般来说,都需要将动态资源和静态资源分开,这样可以很大程度的提升静态资源的访问速度,同时在开过程中也可以让前后端开发并行可以有效的提高开发时间,也可以有些的减少联调时间 。接下来介绍什么是动静分离以及如何使用Nginx实现动静分离。

前面介绍了Nginx的负载均衡,一般来说,都需要将动态资源和静态资源分开,这样可以很大程度的提升静态资源的访问速度,同时在开过程中也可以让前后端开发并行可以有效的提高开发时间,也可以有些的减少联调时间 。接下来介绍什么是动静分离以及如何使用Nginx实现动静分离。


一、什么是动静分离

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

动静分离,说白了,就是将网站静态资源(HTML,JavaScript,CSS,img等文件)与后台应用分开部署,提高用户访问静态代码的速度,降低对后台应用服务器的请求。后台应用服务器只负责动态数据请求。


优势:分担负载,减轻web服务器的压力,适用于大负载。静态资源放置cdn,同时还可以通过配置缓存到客户浏览器中,这样极大减轻web服务器的压力。


劣势:网络环境不佳时,ajax回应很慢,导致页面出现空白,出错处理会不好看。不利于网站SEO(搜索引擎优化),增加了开发复杂度。


二、实现方案

动静分离就是根据一定规则静态资源的请求全部请求Nginx服务器,后台数据请求转发到Web应用服务器上。从而达到动静分离的目的。目前比较流行的做法是将静态资源部署在Nginx上,而Web应用服务器只处理动态数据请求。这样减少Web应用服务器的并发压力。具体如下图所示:

1633743657(1).png

 

三、配置Nginx动静分离

1. 修改nginx.conf配置,其中第一个location负责处理后台请求,第二个负责处理静态资源, nginx 的其他配置,请参考前之前的文章。 具体如下所示:

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

上面的示例,主要是配置image、js、css等资源文件的路径和地址。然后设置缓存失效的时间。


完成的Nginx配置如下所示:

worker_processes  1;
events {
    worker_connections  1024;
}
http {
   server {
       listen       80;
       server_name  localhost;
      #拦截后台请求
      location / {
        proxy_pass http://localhost:81;
        proxy_set_header X-Real-IP $remote_addr;
      }
      #拦截静态资源
      location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|js|css)$ {
        root static;
        expires      30d;  
       }
    }
}

 

2. 在Nginx 下 创建 static 目录,将图片,js, css 等文件 拷贝到该目录下

1633744420(1).png

3. 重启Nginx,使用命令: ./nginx -s reload 重新启动Nginx。



四、验证测试

Nginx 配置完成之后,在浏览器中访问:http://localhost/ 查看页面的请求效果。

image.png

通过浏览器的调试工具,通过图中红框内容都可以看出来引用静态资源成功了。动态请求转发到了81端口的web应用服务器,而静态的资源文件,访问的是80端口。说明Nginx的动静分离配置成功。



最后

以上,就把如何配置Nginx动静分离介绍完了,是不是特别简单。

因为后面还要介绍Nginx 的优化,免不了查看Nginx的状态。所以这里就提前介绍下。下篇会介绍Nginx的高性能优化,怎么让Nginx服务器实现10w的并发访问量。


这是系列课程,大家关注我的微信公众号(架构师精进),随时交流。



推荐阅读:

Nginx极简入门(八)Nginx性能监控及性能状态参数详解!

Nginx极简入门(七)Nginx的日志管理及配置

Nginx极简入门(六)配置Nginx负载均衡,提高系统并发性能!

Nginx极简入门(五)配置Nginx反向代理

Nginx极简入门(四)基于域名的虚拟主机配置

Nginx极简入门(三)基于端口的虚拟主机配置

Nginx极简入门(二)配置基于ip的虚拟主机

Nginx极简入门(一)如何在Linux系统编译安装Nginx服务

Nginx极简实战—Nginx服务器高性能优化配置,轻松实现10万并发访问量

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