Nginx动静分离

1、概念

①动态请求和静态请求

  • 动态请求:需要由 Java 程序来处理的请求。
  • 静态请求:访问静态资源,不需要 Java 程序处理的请求。

②实现方案

  • 方案一:纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案。
  • 方案二:动态跟静态文件混合在一起发布,通过 Nginx 来分开。

2、操作

①准备工作

  • 在 Linux 系统中创建目录用来保存静态资源文件。
    • /data/images/mi.jpg
    • /data/www/index.html
  • 在 Nginx 中配置对这些静态资源的映射
    # 实验六:动静分离
    # 配置对静态资源的映射
    server {
        listen 7777;
        server_name www.atguigu.shuai;

        location / {
            root html;
            index index.html;
        }

        # 当用户通过 Nginx 访问 /images/ 目录下的内容时,参考这个 location 配置
        location /images/ {
            # root 表示指定静态资源所在的根目录 
            root /data/;

            # 开启 autoindex 功能,可以在页面上显示目录的内容
            autoindex on;
        }

        # 当用户通过 Nginx 访问 /www/ 目录下的内容时,参考这个 location 配置
        location /www/ {
            root /data/;
            autoindex on;
            index index.html index.htm;
        }

    }
  • 在 Tomcat 中准备 JSP 页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

    <h1>JSP 页面</h1>
    <img src="/images/mi.jpg" />

</body>
</html>

现在在这个 JSP 页面中,/images/mi.jpg 路径并不是按照 Tomcat 上运行的 Web 应用来编写的。而是按照通过 Nginx 访问静态资源的规则,编写的路径。

②配置 Nginx 访问动态资源

        # 配置 location 访问 Tomcat
        location / {
            proxy_pass http://localhost:8080;
            index index.jsp;
        }

③Nginx 中的总体配置

    # 实验六:动静分离
    # 配置对静态资源的映射
    server {
        listen 7777;
        server_name www.atguigu.shuai;

        # 配置 location 访问 Tomcat
        location / {
            proxy_pass http://localhost:8080;
            index index.jsp;
        }

        # 当用户通过 Nginx 访问 /images/ 目录下的内容时,参考这个 location 配置
        location /images/ {
            # root 表示指定静态资源所在的根目录 
            root /data/;

            # 开启 autoindex 功能,可以在页面上显示目录的内容
            autoindex on;
        }

        # 当用户通过 Nginx 访问 /www/ 目录下的内容时,参考这个 location 配置
        location /www/ {
            root /data/;
            autoindex on;
            index index.html index.htm;
        }

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值