• Nginx实现动静分离


    一、概述

    1、什么是动静分离

    动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路。

    动静分离简单的概括是:动态文件与静态文件的分离。

    2、Nginx实现动静分离

    Nginx 动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上来说,应该是动态请求跟静态请求分开,可以理解成使用 Nginx 处理静态页面,Tomcat 处理动态页面。

    动静分离从目的实现的角度,大致分为两类:

    • 一种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,这种是目前主流推崇的方案之一。
    • 一种是将动态资源和静态资源混合在一起发布,通过 Nginx 来调度分开。

    Nginx实现动静分离通过 location参数设置对请求url进行匹配即可。

    二、Nginx实现动静分离

    静态资源和 Nginx服务放在一个服务器中。

    1、准备工作

    这里准备两台tomcat服务器,一台服务器为静态资源访问,另一台服务器为动态资源访问。

    在静态资源服务器创建 目录,存放一些文件。

    #启动tomcat8080:
    /usr/local/tomcat8080/bin/startup.sh
    #关闭tomcat8080:
    /usr/local/tomcat8080/bin/shutdown.sh
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    2、实例

    第一步:修改Nginx的配置文件

    vi /usr/local/nginx/conf/nginx.conf

    http {
     
        # upstream模块:自定义服务组名
        upstream my_tomcat_server{
             server 192.168.xxx.x10:8080;
        }
    
      server {
            listen       80;
            #server_name  localhost;
            server_name  192.168.xxx.xxx;
    
            charset utf-8;
    
    
            # 静态资源访问
            location /static/ {
                alias       /usr/local/mystatic/;
                # autoindex作用为展示目录
                autoindex   on;
            }
    
    				# 动态资源访问
            location /dy/ {
                    root   html;
                    index  index.html index.htm;
    
                    # proxy_pass:代理转发,指定我们配置负载均衡的服务名my_tomcat_server
                    proxy_pass http://my_tomcat_server/;
                    # 增加下面内容
                    proxy_set_header        Host                    $host;
                    proxy_set_header        X-Real-IP               $remote_addr;
                    proxy_set_header        X-Forwarded-For         $proxy_add_x_forwarded_for;
    
            }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    静态资源的匹配URL规则自定义,比如:

    #匹配到http://ip/*.jpg或者*.gif或者*.png或者*.css时,交由静态资源服务器处理
    location ~ .*\.(jpg|gif|png|css) {
    	...
    }
    
    • 1
    • 2
    • 3
    • 4

    第二步:重启Nginx

    修改 nginx完之后,保存退出,重启Nginx。

    # 先执行停止命令再执行启动命令
    [root@centos7 sbin]# /usr/local/nginx/sbin/nginx -s quit
    [root@centos7 sbin]# /usr/local/nginx/sbin/nginx
    
    • 1
    • 2
    • 3

    第三步: 浏览器访问

    nginx访问静态资源服务器:

    添加 charset utf-8; 解决中文名乱码问题。

    在这里插入图片描述
    nginx访问动态资源服务器:

    在这里插入图片描述

    – 求知若饥,虚心若愚。

  • 相关阅读:
    【ML特征工程】第 8 章 :自动化特征化器:图像特征提取和深度学习
    基于单片机的四层电梯仿真设计(#0012)
    不是单例的单例——巧用ClassLoader
    重新整理 .net core 实践篇 ———— dotnet-dump [外篇]
    分布式重点知识总结
    学习记忆——宫殿篇——记忆宫殿——记忆桩——学校
    python 变量引用,值变量
    跨境电商源码独立开发:一次购买,终生使用
    【3D 图像分割】基于 Pytorch 的 VNet 3D 图像分割10(测试推理篇)
    windows c++ 输出所有服务列表,并判断是否是开机启动项
  • 原文地址:https://blog.csdn.net/qq_42402854/article/details/133558150