nginx http块配置说明

http块配置说明

http块

定义MIME-Type

Nginx 的 mime.types 配置文件用于定义文件扩展名与 MIME 类型之间的映射。MIME 类型(Multipurpose Internet Mail Extensions)是一种标准,用于描述文件的类型和格式。通过将文件扩展名与适当的 MIME 类型关联,Nginx 能够正确地告诉浏览器如何处理和显示文件。

在Nginx的配置文件中,http块中默认有两行配置

include mime.types;
default_type application/octet-stream;

在这里插入图片描述
mime.types文件内容
在这里插入图片描述

default_type:用来配置Nginx响应前端请求默认的MIME类型。

语法 default_type [MIME 类型]
默认值 default_type text/plain;
示例 default_type application/octet-stream;
位置 http, server, location 块

当请求某些接口时,需要返回指定的文本字符串或 JSON 字符串。如果逻辑非常简单,或者返回的是固定的字符串,可以使用 Nginx 来快速实现。这不仅免去了编写程序来响应请求的麻烦,还可以减少服务器资源的占用,并且提高响应性能

 location /get_text {
   default_type text/plain;
   return 200 "This is Nginx Text Test";
}

在这里插入图片描述

按如上修改配置nginx.conf文件

修改完成后使用nginx -t测试文件是否正确
在这里插入图片描述
使用nginx -s reload重新加载配置文件

测试:
在这里插入图片描述
测试html
添加配置

location /get_html {
    default_type text/html;
    return 200 "<h2>This is Nginx html Test<h2>";
}

修改完成后执行nginx -s reload重新加载配置文件
在这里插入图片描述

返回json格式


```powershell
location /get_json {
    default_type application/json;
    return 200 '{"name":"jack","age":"18","gender":1}';
}
sendfile

sendfile 用于设置 Nginx 服务器是否使用 sendfile() 系统调用来传输文件。sendfile 是 Linux 内核中处理静态资源的一个函数,它可以显著提升从磁盘读取静态资源并返回到前端的过程。

当 Nginx 访问静态资源时,这些资源通常存储在磁盘上。通过启用 sendfile,Nginx 可以直接从磁盘读取数据并发送到网络,而无需在内核空间和用户空间之间进行多次数据复制。这种方式大大提高了静态资源处理的性能,减轻了 CPU 负载,并加快了文件传输速度。

简而言之,启用 sendfile 能显著提高 Nginx 处理静态资源的性能,使得文件传输更加高效。

如下图:
未开启sendfile的处理流程
在这里插入图片描述
开启sendfile的处理流程
在这里插入图片描述

在这里插入图片描述

语法 sendfile [on | off]
默认值 sendfile off;
示例 sendfile on;
位置 http, server, location 块

sendfile 指令的解释
语法: sendfile [on | off]
用于启用或禁用 sendfile 功能。
默认值: sendfile off;
默认情况下,sendfile 功能是禁用的。
示例: sendfile on;
启用 sendfile 功能,允许在发送文件时直接从磁盘读取数据并发送到网络,减少数据在内核空间和用户空间之间的复制,提高文件传输效率。

keepalive_timeout

keepalive_timeout:用来设置长连接的超时时间。

为什么要用keepalive_timeout
HTTP是一种无状态协议,客户端向服务端发送一个TCP请求,服务端响应完毕后断开连接。
如果客户端向服务端发送多个请求,那么每个请求都需要重新创建一次连接,效率相对来说比较低,
使用keepalive模式,可以告诉服务器端在处理完一个请求后保持这个TCP连接的打开状态,
若接收到来自这个客户端的其他请求,服务端就会利用这个未被关闭的连接,而不需要重新创建一个新连接,
提升效率,但是这个连接也不能一直保持,这样的话,连接如果过多,也会使服务端的性能下降,这个时候就需要我们进行设置其的超时时间。

语法 keepalive_timeout [timeout] [header_timeout]
默认值 keepalive_timeout 75s;
示例 keepalive_timeout 65s;
位置 http, server, location 块

在这里插入图片描述

keepalive_requests

keepalive_requests: 指令用于设置在一个保持活动连接(Keep-Alive)上可以执行的最大请求数。通过限制请求数,可以防止单个连接长时间占用资源,提高服务器的可用性和性能。

语法 keepalive_requests [number]
默认值 keepalive_requests 100;
示例 keepalive_requests 200;
位置 http, server, location 块

在这里插入图片描述

相关推荐

  1. axios配置以及说明

    2024-07-22 03:58:01       40 阅读
  2. mysql 配置说明

    2024-07-22 03:58:01       41 阅读
  3. 6 Zookeeper 配置说明

    2024-07-22 03:58:01       30 阅读
  4. RocketMQ:broker配置说明

    2024-07-22 03:58:01       28 阅读
  5. Spring——配置说明

    2024-07-22 03:58:01       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 03:58:01       106 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 03:58:01       116 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 03:58:01       95 阅读
  4. Python语言-面向对象

    2024-07-22 03:58:01       103 阅读

热门阅读

  1. 谈谈如何快速学习一门技术

    2024-07-22 03:58:01       27 阅读
  2. WebGIS面试题(第八期)

    2024-07-22 03:58:01       23 阅读
  3. 算法的概述

    2024-07-22 03:58:01       23 阅读
  4. 2024年水利水电安全员考试题库及答案

    2024-07-22 03:58:01       26 阅读
  5. c语言(7.21)

    2024-07-22 03:58:01       24 阅读
  6. 原型继承和原型链

    2024-07-22 03:58:01       26 阅读
  7. 【渗透入门】反序列化

    2024-07-22 03:58:01       24 阅读
  8. Windows图形界面(GUI)-DLG-C/C++ - 月历控件(MonthCalendar)

    2024-07-22 03:58:01       26 阅读
  9. Dijkstra

    2024-07-22 03:58:01       25 阅读
  10. B树:高效的数据存储结构

    2024-07-22 03:58:01       25 阅读
  11. newton算法实现的div的verilog

    2024-07-22 03:58:01       22 阅读
  12. Servlet会话跟踪基础

    2024-07-22 03:58:01       23 阅读