• 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访问动态资源服务器:

    在这里插入图片描述

    – 求知若饥,虚心若愚。

  • 相关阅读:
    智慧城市行业资料学习目录
    代码随想录算法训练营第五十天| LeetCode123. 买卖股票的最佳时机 III、LeetCode188. 买卖股票的最佳时机 IV
    代码随想录算法训练营第20天|二叉树
    1516_AURIX TC275总线设计以及SRI总线
    C++基础知识(二十五)--- STL案例之演讲比赛
    【附源码】计算机毕业设计JAVA宠物医院管理
    Linux 目录挂载服务
    电商小程序09活动管理
    华为1000人校园实验记录
    Python爬虫实战第三例【三】(下)
  • 原文地址:https://blog.csdn.net/qq_42402854/article/details/133558150