当前位置: 首页 > news >正文

Ubuntu环境 nginx.conf详解(二)

1、nginx.conf 结构详解:

http 块:用于配置 HTTP 服务器的相关设置,包括处理 HTTP 和 HTTPS。

stream 块:用于配置 TCP/UDP 代理服务器,适用于需要进行四层负载均衡的情况。

...            # 全局块
events {...}   # events块
http {						  # http块...   					  # http全局块server { 					  # server块...       				  # server全局块location [PATTERN] {...}  # location块location [PATTERN] {...}  # location块}server { ... } 			  # server块
}stream {				      # stream块server { ... } 			  # server块
}

2、详细nginx.conf详解:

1、全局块:

#定义 用户和用户组,默认为 nobody,若配置为 user nobody nobody, 则所有用户都能启动 nginx 进程
user myUsr myGroup;# 工作进程数可设置为CPU的核心数
worker_processes  1;# 进程文件路径
pid /user/local/nginx/nginx.pid;# 日志路径和日志级别,日志级别有:debug|info|notice|warn|error|crit|alert|emerg;
error_log logs/error.log debug;

2、events 块:

events {# 设置网路连接序列化是为了防止惊群现象发生,默认为 on;accept_mutex on;# 是否同时接受多个网络连接指令默认值为 off;multi_accept on;# 事件驱动模型的可选项有:select|poll|kqueue|epoll|resig|/dev/poll|eventport;use epoll;# 最大连接数worker_connections  1024;
}

 3、http 全局块:

子模块相同配置,可统一配置在 http全局 中。

http {# 文件扩展名与文件类型映射表在 nginx/conf 下include mime.types;# 默认文件类型的默认值为 text/plain;default_type  application/octet-stream;# 是否开启服务日志的默认值为 on,开启了之后需要配置 access_log 路径;access_log off;# 自定义服务日志格式log_format myLogFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for';# 设置日志的格式access_log log/access.log myLogFormat;# sendfile 指令指定 nginx 是否调用 sendfile 函数来输出文件,减少用户空间到内核空间的上下文切换;对于普通应用设为 on,如果用来进行下载等应用磁盘 IO 重负载应用,可设置为 off,以平衡磁盘与网络 I/O 处理速度,降低系统的负载;sendfile on;# 每个进程每次最大传输值,指令的默认为 0,表示不设上限;sendfile_max_chunk 100k;# 长连接超时时间,单位是秒,这个参数很敏感,涉及浏览器的种类、后端服务器的超时设置、操作系统的设置;长连接在请求大量小文件的时候,可以减少重建连接的开销;但如果上传大文件时在设置的超时时间内没上传完成会导致失败,如果设置时间过长,用户又多,长时间保持连接会占用大量资源;keeplive_timeout 100;# 响应客户端的超时时间,仅限于两个连接活动之间的时间,如果超过这个时间,客户端没有任何活动,Nginx将会关闭连接;send_timeout 75;# 客户端请求头的区缓冲区大小,为避免请求 header 过大出现 400 错误,可以适当设置大一点;client_header_buffer_size 32k;# 客户端请求头的最大缓冲区数量和大小,为避免请求 header 过大出现 400 错误,可以适当设置大一点;large_client_header_buffers 8 32k;# 允许客户端请求的最大字节数,为避免请求 header 过大出现 400 错误,可以适当设置大一点;client_max_body_size  10m;# 客户端请求体的缓冲区大小,为避免请求 header 过大出现 400 错误,可以适当设置大一点;client_body_buffer_size  128k;# 配置 https_proxy 反向代理,配置如下:# 表示 Nginx 跟代理服务器连接超时时间proxy_connect_timeout  75;# 表示 Nginx 与代理服务器两个成功的响应操作之间超时时间;proxy_read_timeout  75;# 表示 Nginx 传输文件至代理服务器的超时时间;proxy_send_timeout 100;# 用于设置从代理服务器读取并保存用户头信息的缓冲区大小;proxy_buffer_size  4k;# 设置代理缓冲区大小,Nginx 针对单个连接,缓存来自代理服务器的响应,网页平均在32k以下的话,可以设置为 4 32K ;proxy_buffers  4  32k;# 设置高负荷下的缓冲大小,一般为 proxy_buffers 的两倍;proxy_busy_buffers_size  64k;# 当 proxy_buffers 放不下后端服务器的响应内容时,会将一部分保存到硬盘的临时文件中,这个值用来设置最大临时文件大小,默认1024M,它与 proxy_cache 没有关系;大于这个值,将从 upstream 服务器传回,设置为 0 禁用;proxy_max_temp_file_size  64k;# 当缓存被代理的服务器响应到临时文件时,这个选项限制每次写临时文件的大小;proxy_temp_file_write_size 64k;# 用于指定临时文件所在的目录;proxy_temp_path  proxy_temp;}

4、反向代理统一配置:

# 配置 https_proxy 反向代理,配置如下:http {...# 表示 Nginx 跟代理服务器连接超时时间proxy_connect_timeout  75;# 表示 Nginx 与代理服务器两个成功的响应操作之间超时时间;proxy_read_timeout  75;# 表示 Nginx 传输文件至代理服务器的超时时间;proxy_send_timeout 100;# 用于设置从代理服务器读取并保存用户头信息的缓冲区大小;proxy_buffer_size  4k;# 设置代理缓冲区大小,Nginx 针对单个连接,缓存来自代理服务器的响应,网页平均在32k以下的话,可以设置为 4 32K ;proxy_buffers  4  32k;# 设置高负荷下的缓冲大小,一般为 proxy_buffers 的两倍;proxy_busy_buffers_size  64k;# 当 proxy_buffers 放不下后端服务器的响应内容时,会将一部分保存到硬盘的临时文件中,这个值用来设置最大临时文件大小,默认1024M,它与 proxy_cache 没有关系;大于这个值,将从 upstream 服务器传回,设置为 0 禁用;proxy_max_temp_file_size  64k;# 当缓存被代理的服务器响应到临时文件时,这个选项限制每次写临时文件的大小;proxy_temp_file_write_size 64k;# 用于指定临时文件所在的目录;proxy_temp_path  proxy_temp;...
}

5、http_gzip 模块配置:

http {...# 如果设置为 on 则表示开启 gzip 压缩输出,可减少网络传输;gzip on;# 设置允许压缩的页面最小字节数(到达这个大小才进行压缩),页面字节数从 header 头的 content-length 中进行获取。默认值是 20。建议设置成大于 1k 的字节数,小于 1k 可能会越压越大;gzip_min_length 1K;# 设置系统获取多少个单位的缓存用于存储 gzip 的压缩结果数据流,4 16k 表示按照原始数据大小以 16k 为单位的 4 倍进行内存申请;gzip_buffers  4  16k;# 设置 http 协议的版本,早期的浏览器不支持 Gzip 压缩,用户就会看到乱码,所以为了支持前期版本加上了这个选项;如果你用了 Nginx 的反向代理并启用 Gzip 压缩的话就需要加上,而由于末端通信是 http/1.0,故请设置为 1.0;gzip_http_version 1.0;# zip 压缩比,为 1 时,压缩比最小处理速度最快;为 9 时,压缩比最大但处理速度最慢;gzip_comp_level 6;# 匹配 mime 类型进行压缩,无论是否指定,text/html 类型总是会被压缩的;gzip_types text/plain text/css application/json;# 配置开启或者关闭后端服务器返回的结果是否压缩,Nginx 作为反向代理的时候启用,匹配的前提是后端服务器必须要返回包含 Via 的 header头;gzip_proxied any;# 配置和 http 头有关系,会在响应头加个 Vary: Accept-Encoding ,可以让前端的缓存服务器缓存经过 gzip 压缩的页面,例如:用 Squid 缓存经过 Nginx 压缩的数据;gzip_vray on;...
}

6、负载均衡后台服务器(http中配置):

http {...upstream backend {server 192.168.56.10:8080 max_fails=2 fail_timeout=30s backup; # 热备server 192.168.56.11:8080 max_fails=2 fail_timeout=30s;}...
}

7、配置 TCP/UDP 代理服务器:

stream {# 负载均衡后台服务器upstream backend {server backend1.example.com:9000 max_fails=2 fail_timeout=30s backup; # 热备;server backend2.example.com:9000;# 可以添加更多服务器... }# server 定义了监听的地址和端口,并指定如何将连接转发到后端服务器。server {# 端口listen 80;location / {# 地址proxy_pass http://backend;# 其他代理设置...}}
}

相关文章:

Ubuntu环境 nginx.conf详解(二)

1、nginx.conf 结构详解: http 块:用于配置 HTTP 服务器的相关设置,包括处理 HTTP 和 HTTPS。 stream 块:用于配置 TCP/UDP 代理服务器,适用于需要进行四层负载均衡的情况。 ... # 全局块 events {...} …...

shardingsphere分库分表项目实践4-sql解析sql改写

为什么要sql解析重写? 如果我们的系统数据库实现了分表,那么我们的sql中表名需要根据参数动态确定,那么代码怎么写? 方案1: 自己手动拼接, 比如 update t_user_${suffix} , ${suffix} 作为一个变量传递…...

mysql数据库中,一棵3层的B+树,假如数据节点大小是1k,那这棵B+可以存多少条记录(2100万的由来)

在MySQL中,3层的B树可以存储的数据量取决于多个因素,包括页大小、每行数据的大小以及索引项的大小。以下是一个详细的计算过程: 一、假设条件 页大小:在InnoDB存储引擎中,B树的每个节点(页)大…...

Git 操作全解:从基础命令到高级操作的实用指南

文章目录 1.基本命令1.初始化仓库2.克隆远程仓库3.查看当前仓库状态4.查看提交日志5.添加文件到暂存区6.提交更改7.查看仓库的配置信息 2.分支操作1.查看所有分支2.创建新分支3.切换名称4.创建并切换到新分支5.删除分支6.查看当前分支 3.合并分支1.合并分支2.解决合并冲突 4.远…...

华院计算参与项目再次被《新闻联播》报道

12月17日,央视《新闻联播》播出我国推进乡村振兴取得积极进展。其中,华院计算参与的江西省防止返贫监测帮扶大数据系统被报道,该系统实现了由原来的“人找人”向“数据找人”的转变,有效提升监测帮扶及时性和有效性,守…...

从一次线上故障聊聊接口自动化测试

1、背景 3月初,运营同事配置了个还未上线的页面到网站首页 banner,导致用户点了报错。尽管这次很明确是运营人为操作失误引起的故障,但过往此类核心页面的访问异常,我们已不是第一次遇见。 从平台整体利益触发,我们各…...

Element-ui的使用教程 基于HBuilder X

文章目录 1.Element-ui简介2.使用HBuilderX 创建一个基于Vue3的项目 (由于是使用的基于Vue3的Element-ui)3.安装element-ui4.在项目里完全引用element-ui5.引用组件6.运行项目 1.Element-ui简介 Element,一套为开发者、设计师和产品经理准备…...

Chapter 03 复合数据类型-1

1.列表 Python内置的一种有序、可变的序列数据类型; 列表的定义: [ ]括起来的逗号分隔的多个元素组成的序列 列表对象的创建: (1)直接赋值 >>> list1 []#创建一个空列表赋值给list1 >>> list…...

【Python知识】Python面向对象编程知识

Python面向对象编程知识 概述1. 类(Class)2. 对象(Object)3. 封装(Encapsulation)4. 继承(Inheritance)5. 多态(Polymorphism)6. 抽象(Abstractio…...

CSharp: Oracle Stored Procedure query table

存储过程查询postgreSQL,Oracle 和sql server,Mysql 有区别。程序调用也是有区别。 oracle sql script: CREATE OR REPLACE PROCEDURE procSelectSchool(paramSchoolId IN char,p_cursor OUT SYS_REFCURSOR ) AS BEGINOPEN p_cursor FORSELECT *FROM SchoolWHERE SchoolId p…...

“协同过滤技术实战”:网上书城系统的设计与实现

2.1 JSP技术介绍 Java Server Pages这三个英文词汇的首字母的组合就是JSP。所以JSP是一个简写的名字,代表动态网页开发技术。JSP与Java的关系可以使用公式表示,即:JSP HTMLJava,HTML就是编写静态内容的标记语言。JSP则是可以编写网…...

Dhatim FastExcel 读写 Excel 文件

Dhatim FastExcel 读写 Excel 文件 一、说明1、主要特点2、应用场景 二、使用方法1、引入依赖2、Sheet 数据3、读取 Excel4、写入 Excel 一、说明 Github 地址:Dhatim FastExcel Dhatim FastExcel是一个高性能、轻量级的Java库,专门用于读取和写入Exce…...

YOLO11全解析:从原理到实战,全流程体验下一代目标检测

前言 一、模型介绍 二、网络结构 1.主干网络(Backbone) 2.颈部网络(Neck) 3.头部网络(Head) 三、算法改进 1.增强的特征提取 2.优化的效率和速度 3.更高的准确性与更少的参数 4.环境适应性强 5.…...

深度学习领域的主要神经网络架构综述

阅读本文前请先按照顺序阅读: Coursera吴恩达《神经网络与深度学习》课程笔记(1)-- 深度学习概述_吴恩达深度学习课程-CSDN博客 https://blog.csdn.net/red_stone1/article/details/77799014 完结篇 | 吴恩达deeplearning.ai专项课程精炼笔…...

【Nginx系列】---Nginx配置tcp转发

参考 Nginx 配置文件: error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid;events {worker_connections 1024; }stream {# 第一个服务转发upstream mysqltest {server 172.16.187.142:9000;}server {listen 9000;proxy_pass mysqltest;}…...

Java抽象工厂+单例模式

在前端时间开发过程中,有这样一个业务场景:A;B两家厂商设备进行设备信息的同步功能。 根据实际场景,做了抽象工厂+单例模式实现调用工厂时,生成不同的具体业务引用对象,实现方法的调用。 概念: 抽象工厂模式通过接口或抽象类来创建一系列相关或依赖对象。它定义了一组工…...

后端接口设计

一、基本规范 1.URL设计 应遵循RESTful风格,使用动词名词的方式描述接口的功能。应简洁明了,易于理解和记忆。 2.请求协议及方法 使用HTTPS协议进行数据传输,保证数据在传输过程中的安全性。如无特殊情况,统一使用post方法。 …...

Docker部署Sentinel

一、简介 是什么:面向分布式、多语言异构化服务架构的流量治理组件 能干嘛:从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性 官网地址:https://sentinelguard.io/zh-c…...

真实环境下实车运行,新能源汽车锂离子电池数据集

引言 锂离子电池(Lithium-ion Batteries,LiBs)已经作为电动汽车核心动力源,其性能直接关系到系统的性能和使用安全。为确保锂电池的安全使用,需要对锂电池的状态进行精确的估计,包括荷电状态(State of Charge, soC)、健康状态(St…...

【求职面试】驾照的种类

大型客车 A1 大型载客汽车 A3、B1、B2、C1、C2、C3、C4、M 牵引车 A2 重型、中型全挂、半挂汽车列车 B1、B2、C1、C2、C3、C4、M 城市公交车 A3 核载10人以上的城市公共汽车 C1、C2、C3、C4 中型客车 B1 中型载客汽车(10人以上、19人以下) C1、C2、C3…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...

7.4.分块查找

一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...

Unity UGUI Button事件流程

场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...