• 四、nginx静态文件的配置


    1. 根据上节内容的提示,我们知道如何进行nginx的信号控制和命令行控制了。

    2. 这节主要是学习nginx的静态文件、缓存、静态文件压缩等相关内容。

    一、 配置并访问nginx静态文件

    1.1 root配置nginx静态文件地址

    在nginx.conf 配置文件中默认使用root配置了nginx静态界面地址

    规则: root配置的路径+location路径为访问的路径。

    路径规则:

    ①相对路径: 上图所示的为相对路径,即nginx的prefix路径(/usr/local/nginx)+html路径,也就是nginx启动时的相对路径。

    ②绝对路径: 如果配置和上图中一样的路径,则需要改为: root /usr/local/nginx/html。

    注: window系统配置则需要加上双引号 eg: “F:/html/html”;

    1.2alias配置静态文件地址

    若使用alias配置上述路径改如何配置呢?改为下述配置即可:

    # eg:1
    
        location /html {
                alias  /usr/local/nginx/html;
                index  index.html index.htm;
            }
    
    
    # eg:2
    
        location /html/ {
                alias  /usr/local/nginx/html/;
                index  index.html index.htm;
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    上文中我用了两个例子,首先alias配置和root区别之一便是 location匹配的路径需要和实际路径后面那节一样。 (root是 root路径+location路径)

    第二个区别就是,root会忽视路径最后面的 / 但是alias必须两个同时存在或同时不存在即可

    二、 配置并访问vue项目文件

    2.1使用root配置vue项目地址

    # 1. 一般使用根路径配置前端
    
    location / {
    
        root /data/webroot/html/xxx/dist;
        index  index.html index.htm;
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2.2 使用alias配置vue项目地址

    # 1. 一般使用根路径配置前端
    
    location /dist {
    
        alias /data/webroot/html/xxx/dist;
        index  index.html index.htm;
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    那么我们进行访问的时候会发现报错如下图所示:

    此时主要是因为配置vue项目的地址是使用的相对路径,也就是路径没有/dist导致的,故需要在dist目录下的index.html统一添加前缀即可:

    下图为正常访问的情况:

    三、 nginx静态文件优化配置

    http{
    
        #提高文件的传输效率
        sendfile on;
        #
        tcp_nopush on;
        #
        tcp_nodelay on;
        
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    3.1sendfile,用来开启高效的文件传输模式

    释义

    on

    开启 eg: sendfile: on;

    off

    关闭 (默认值)。eg: sendfile: off;

    注:① sendfile默认是关闭的。

    ② 在默认情况下,静态文件请求会进行linux内存将文件从磁盘拷贝到缓冲区、然后再将缓冲区的文件通过进程应用拷贝到sokect缓冲区进行返回。

    ③ 开启时,则会直接由linux内核拷贝到sokect缓冲区提供,大大节约了io的次数。

    ④ 在http server location均可以进行开启。

    3.2tcp_nopush:提升网络包的传输’效率(sendfile 开启)

    释义

    on

    开启 eg: tcp_nopush: on;

    off

    关闭 (默认值)。eg: tcp_nopush: off;

    注: 这个开启,则保证了文件不会零散的发送出去(减少了io次数),一次性发送对于整个网络有很大的优化提升。

    3.3tcp_nodelay:提高网络包传输的’实时性(keep-alive连接开启)

    释义

    on

    开启 eg: tcp_nodelay: on;

    off

    关闭 (默认值)。eg: tcp_nodelay: off;

    注:① 这个开启,会保证数据包(静态文件会分成很多数据包)存在的时候直接进行发送。

    ② 看上去这个和3.2tcp_nopush 是互斥的,但是在linux内核2.5.9之后处理逻辑是先保证3.2tcp_nopush填满,当文件

    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    KD tree-基于树的ANN近邻搜索
    程序员专用表情包,记得转发给你的秃头同事
    抖音上的影视解说是怎么配音的?
    Java笔记--注解
    牛客在线编程101-17 二分查找-I
    CompletableFuture详解-初遇者-很细
    matlab中filter帮助文档中“对矩阵行进行滤波”的解释
    西门子1200PLC和Modbus485从站设备通讯
    华为机试真题 Java 实现【日志首次上报最多积分】【2022.11 Q4 新题】
    游戏思考19:游戏多维计算相关:点乘、叉乘、点线面距离计算
  • 原文地址:https://blog.csdn.net/Ajekseg/article/details/126081035