Nginx http模块配置详解

http { include /etc/nginx/mime.types; # MIME类型 default_type application/octet-stream; # 日志格式 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; # 基础参数 sendfile on; # 高效文件传输 tcp_nopush on; # TCP优化 tcp_nodelay on; # 禁用Nagle算法 keepalive_timeout 65; # 长连接超时 client_max_body_size 20m; # 最大上传文件大小 # Gzip压缩 gzip on; gzip_comp_level 6; gzip_types text/plain text/css application/json; # 上游服务器(负载均衡) upstream backend { server 192.168.1.100:8080 weight=3; server 192.168.1.101:8080; server 192.168.1.102:8080 backup; # 负载均衡策略:轮询(默认)、ip_hash、least_conn } }

本篇博文由我来详细解读上面这个Nginx HTTP配置块:

配置详解

1. MIME类型配置

include /etc/nginx/mime.types; # 包含MIME类型定义文件 default_type application/octet-stream; # 默认MIME类型
  • 作用:告诉浏览器如何处理不同类型的文件
  • 示例
    • .htmltext/html
    • .csstext/css
    • .jpgimage/jpeg
  • 默认类型:未知文件类型按二进制流处理,浏览器会触发下载

2. 日志配置

log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';

日志字段解析

变量含义示例
$remote_addr客户端IP192.168.1.100
$remote_user认证用户名-(未认证)
$time_local访问时间[18/Jan/2023:10:12:33 +0800]
$request请求行"GET /index.html HTTP/1.1"
$status状态码200
$body_bytes_sent响应体大小1234
$http_referer来源页面"http://google.com"
$http_user_agent用户代理"Mozilla/5.0..."
$http_x_forwarded_for代理IP"1.2.3.4, 5.6.7.8"
access_log /var/log/nginx/access.log main; # 访问日志路径和格式

3. 性能优化参数

A. 文件传输优化
sendfile on; # 使用内核的sendfile系统调用
  • 传统方式:磁盘 → 内核缓冲区 → 用户缓冲区 → 内核缓冲区 → 网络
  • sendfile方式:磁盘 → 内核缓冲区 → 网络
  • 优点:减少2次内存拷贝,零拷贝技术
B. TCP优化
tcp_nopush on; # 在sendfile开启时,等数据包填满再发送 tcp_nodelay on; # 禁用Nagle算法,小数据包立即发送

看似矛盾,实际配合

  • tcp_nopush+sendfile:适用于大文件,减少数据包数量
  • tcp_nodelay:适用于小数据,降低延迟
C. 连接管理
keepalive_timeout 65; # 长连接保持65秒

HTTP Keep-Alive工作流程

客户端: GET /page1 服务器: 响应页面1 ↓ (65秒内) 客户端: GET /page2 ← 复用TCP连接 服务器: 响应页面2
D. 请求限制
client_max_body_size 20m; # 最大上传文件20MB
  • 超过限制返回413 Request Entity Too Large
  • 常用于文件上传场景

4. 压缩配置

gzip on; # 开启Gzip压缩 gzip_comp_level 6; # 压缩级别1-9(6是平衡选择) gzip_types text/plain text/css application/json;

压缩效果对比

原始文件: index.html 10KB 压缩后: index.html.gz 3KB# 传输减少70%

未列出的常见类型

# 建议补充 gzip_types text/html text/plain text/css application/json application/javascript application/xml image/svg+xml font/woff font/woff2;

5. 负载均衡配置

upstream backend { server 192.168.1.100:8080 weight=3; # 权重3,处理30%请求 server 192.168.1.101:8080; # 权重1,处理10%请求 server 192.168.1.102:8080 backup; # 备份服务器 }

负载均衡算法

算法配置适用场景
轮询(默认)默认服务器性能相近
加权轮询weight=N服务器性能不同
IP哈希ip_hash需要会话保持
最少连接least_conn长连接场景

请求分发示例

请求1 → 192.168.1.100 (权重3) 请求2 → 192.168.1.100 请求3 → 192.168.1.100 请求4 → 192.168.1.101 (权重1) 请求5 → 192.168.1.100 ... 备份服务器仅在主服务器宕机时使用

6. 健康检查(建议添加)

upstream backend { server 192.168.1.100:8080 max_fails=3 fail_timeout=30s; server 192.168.1.101:8080 max_fails=3 fail_timeout=30s; }
  • max_fails=3:连续失败3次标记为不可用
  • fail_timeout=30s:30秒后重新尝试

配置优化建议

1. 安全增强

# 建议添加 server_tokens off; # 隐藏Nginx版本 client_body_buffer_size 128k; # 请求体缓冲区 client_header_buffer_size 4k; # 请求头缓冲区 large_client_header_buffers 4 8k; # 大请求头缓冲区

2. 性能调优

# 文件缓存 open_file_cache max=1000 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2; # 连接池优化 keepalive_requests 100; # 每个连接最大请求数

3. Gzip完整配置

gzip on; gzip_vary on; # 添加Vary头,代理缓存 gzip_proxied any; # 对所有代理请求压缩 gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_min_length 1024; # 小于1KB不压缩 gzip_types text/plain text/css application/json application/javascript application/xml text/xml application/xml+rss text/javascript image/svg+xml font/woff font/woff2;

4. 日志优化

# 按天分割日志 map $time_iso8601 $logdate { '~^(?<ymd>\d{4}-\d{2}-\d{2})' $ymd; default 'nodate'; } access_log /var/log/nginx/access-$logdate.log main;

配置流程图解

客户端请求 ↓ Nginx接收 ↓ 日志记录 → access.log ↓ 检查MIME类型 → mime.types ↓ [大文件] sendfile传输 → 零拷贝 [小文件] 常规传输 ↓ [可压缩] Gzip压缩 → 减少带宽 [不可压缩] 直接发送 ↓ [需要代理] → upstream负载均衡 [静态文件] → 直接响应 ↓ TCP优化 → tcp_nopush/tcp_nodelay ↓ 保持连接65秒 → keepalive_timeout ↓ 返回响应

实际应用场景

场景1:Web服务器

http { # 当前配置 + 静态文件优化 sendfile on; tcp_nopush on; gzip on; server { root /var/www/html; index index.html; } }

场景2:API网关

http { # 当前配置 + 超时控制 proxy_connect_timeout 5s; proxy_read_timeout 30s; proxy_send_timeout 30s; upstream api_servers { least_conn; # 最少连接算法 server api1:8080; server api2:8080; } }

场景3:文件服务器

http { # 当前配置 + 大文件支持 client_max_body_size 100m; # 禁用某些目录的访问 location ~ /\. { deny all; } }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1178605.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nginx 虚拟主机 Server块配置详细解读

Nginx Server块配置详细解读 server {listen 80; # 监听端口listen [::]:80 ipv6onlyon; # IPv6server_name example.com www.example.com; # 域名# 根目录和索引root /var/www/html;index index.html index.htm index.php;# 字符集charset utf-8;# SSL配…

ROS1 noetic 中将 Unitree G1 基于 Gazebo/RViz 关节联动【使用一个launch文件启动】

博客地址:https://www.cnblogs.com/zylyehuo/Unitree G1 模型文件下载地址(挑选自己需要的部分,本教程基于 g1_29dof.urdf (以及 .xml 和 meshes 文件夹))有核心的 URDF 文件和 Meshes (STL 网格文件)效果预览工作空…

写论文软件哪个好?实测揭秘!宏智树 AI 凭 “真研究” 实力出圈

毕业季的论文焦虑&#xff0c;几乎是每一位学子的必经之路&#xff1a;选题太泛被导师打回、文献堆砌逻辑混乱、数据分析无从下手、查重率居高不下、AI 生成痕迹被系统标红…… 面对五花八门的论文写作工具&#xff0c;“写论文软件哪个好” 成了无数学子的灵魂拷问。 作为深耕…

什么是 CMS 站群系统?以及它在百度 SEO 中的真实作用

在做网站矩阵、内容覆盖或 SEO 项目时&#xff0c;很多人都会听到一个词——CMS 站群系统。 但这个概念在实际使用中&#xff0c;经常被误解成“多个 CMS 拼在一起”&#xff0c;甚至被简单等同于泛目录工具&#xff0c;这种理解并不准确。本文从实际使用和搜索引擎角度&#x…

5 款 AI 写论文哪个好?实测宏智树 AI:毕业论文的全能型学术助手

毕业季的论文赛道上&#xff0c;“5 款 AI 写论文哪个好” 的灵魂拷问&#xff0c;总能在各大高校的互助群里刷屏。作为深耕论文写作科普的测评博主&#xff0c;我选取计算机、汉语言文学、临床医学等 5 个专业的毕业论文为样本&#xff0c;对宏智树 AI、万能小 in、DeepSeek、…

2026年周边优秀的汽车维修经销商怎么选择,客车轮胎/汽车保养/货车轮胎/轿车保养/汽车检测,汽车维修批发哪个好 - 品牌推荐师

行业洞察:汽车维修市场技术升级与服务质量双驱动趋势 随着汽车保有量持续攀升,消费者对维修服务的技术专业性、服务响应效率及售后保障提出更高要求。据中国汽车流通协会数据显示,2025年国内汽车后市场规模突破1.8万…

CMS站群系统在实际项目中解决的,往往不是“建站问题”

在很多讨论中&#xff0c;cms站群系统 常常被理解为“为了多建几个站”。 但在实际项目中&#xff0c;它真正解决的&#xff0c;往往并不是建站本身&#xff0c;而是后期无法规模化的问题。 这也是为什么&#xff0c;只有在项目做到一定阶段之后&#xff0c;才会真正意识到 cm…

变量的使用

变量的使用 public class Demo03Var{public static void main(string[] args){//byetbyet num1 = 100;System.out.println(num1);//shortbyet num2 = 1000;num2 = 1001;System.out.println(num2);//int 整数的默认类…

2026最新最全Java 面试题大全(整理版)2000+ 面试题附答案详解

很多 Java 工程师的技术不错&#xff0c;但是一面试就头疼&#xff0c;10 次面试 9 次都是被刷&#xff0c;过的那次还是去了家不知名的小公司。 问题就在于&#xff1a;面试有技巧&#xff0c;而你不会把自己的能力表达给面试官。 应届生&#xff1a;你该如何准备简历&#…

2026年市场有名的包衣机定做厂家怎么选择,高效湿法制粒机/离心造粒包衣机/微孔高效包衣机,包衣机供货商口碑推荐 - 品牌推荐师

随着全球制药、保健品及食品工业对产品质量、生产效率和合规性要求的不断提升,高效、稳定、智能化的包衣设备已成为固体制剂生产线的核心装备之一。面对市场上琳琅满目的包衣机品牌与型号,采购方在选择定制化供应商时…

全网最全9个AI论文工具,专科生轻松搞定论文写作!

全网最全9个AI论文工具&#xff0c;专科生轻松搞定论文写作&#xff01; AI 工具如何助力论文写作&#xff1f; 在当今学术环境中&#xff0c;AI 工具正逐渐成为学生和科研人员的重要助手。尤其是在论文写作过程中&#xff0c;AI 技术不仅能够有效降低 AIGC&#xff08;人工智能…

租车新选择:2026年口碑爆棚的租车公司推荐,租赁/自驾租车/租车/会展包车/包车/企业租车/跨境包车,租车公司选哪家 - 品牌推荐师

评测背景 随着出行需求多元化及消费升级,租车行业已成为连接个人出行、商务活动与旅游服务的重要枢纽。2026年,消费者对租车服务的核心诉求已从“基础用车”转向“品质、安全、效率与个性化”的综合体验。为此,第三…

web入门91-100

web91 分析代码使用换行符(%0a)绕过 ?cmd=abc%0aphpweb92 分析代码需要传入一个不等于4476的数字,但是取整又要等于4476,所以直接传一个小数4476.1web93 分析代码发现只是多禁了一些字母,继续用上一关的payloadweb…

Splay/LCT

Splay 与 lctSplay Splay 我们考虑在一颗 BST,用旋转操作将某个元素先提到根,使其仍是一颗 BST,这样的操作就是 \(s(x,0)\)。 void splay(int x,int target){while(fa[x]!=target){int f=fa[x],gf=fa[f];if(gf==tar…

基于可视分析技术的深度学习模型构建与优化【附源码】

✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导&#xff0c;毕业论文、期刊论文经验交流。 ✅ 专业定制毕设、代码 ✅ 成品或定制&#xff0c;查看文章底部微信二维码 &#xff08;1&#xff09;多层级可视化的深度学习模型构建体系 面对深度学习…

移除链表元素-day03

203. 移除链表元素 题目链接:https://leetcode.cn/problems/remove-linked-list-elements/description/ 思路:在原来的链表中新增一个节点,这个节点作为头结点(好处,不用单独处理原链表的头结点) 代码: public …

Java Web 核心全解析 - 实践

Java Web 核心全解析 - 实践2026-01-18 15:27 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important;…

制图不用愁!CAXA 电子图板 2025 最新版本国标图库一键调用

CAXA 电子图板 2025 是国产自主的二维 CAD 软件,贴合国标、高效易用、兼容性强,主打机械制图,是替代海外 CAD 的高性价比选择。核心亮点:自主双内核:支持 EXB 原生格式和 DWG 格式双向转换,数据互通无壁垒,版权…

基于深度学习的信道编码识别与扰码分析【附完整代码】

✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导&#xff0c;毕业论文、期刊论文经验交流。✅ 专业定制毕设、代码✅ 成品或定制&#xff0c;查看文章底部微信二维码&#xff08;1&#xff09;基于Inception结构的信道编码盲识别模型 在非合作通信…

2026年知名的石墨烯涂料设计推荐排行,光固化保护套/石墨烯涂料/无溶剂环氧涂料,石墨烯涂料源头厂家推荐排行榜 - 品牌推荐师

近年来,随着工业防腐需求升级与环保政策趋严,石墨烯涂料凭借其优异的导电性、耐腐蚀性及环保特性,成为防腐材料领域的“新宠”。据行业数据预测,2026年国内石墨烯涂料市场规模将突破百亿元,应用场景从传统管道、桥…