Nginx的配置

news2024/10/6 16:24:44

1运行中的Nginx进程间的关系

1.在正式提供服务的产品环境下,部署Nginx时都是使用一个master进程来管理多个worker进程,一般情况下,worker进程的数量与服务器上的CPU核心数相等。每一个worker进程都是繁忙的,它们在真正地提供互联网服务,master进程则很“清闲”,只负责监控管理worker进程。

问题一:
Nginx是支持单进程(master 进程)提供服务的 那么为什么产品环境下要按照master和worker方式配置同时启动多个进程呢?这样做的好处主要有以下两点:
·由于master进程不会对用户请求提供服务,只用于管理真正提供服务的worker进程,所以master进程可以是唯一的,它仅专注于自己的纯管理工作,为管理员提供命令行服务,包括诸如启动服务、停止服务、重载配置文件、平滑升级程序等。master进程需要拥有较大的权限,例如,通常会利用root用户启动mastcr进程。worker进程的权限要小于或等于master进程,这样master进程才可以完全地管理worker进程。当任意一个worker进程出现错误从而导致coredump时,master进程会立刻启动新的worker进程继续服务。
·多个worker进程处理互联网请求不但可以提高服务的健壮性(一个worker进程出错后,其他workcer进程仍然可以正常提供服务),最重要的是,这样可以充分利用现在常见的SMP多核架构,从而实现微观上真正的多核并发处理。因此,用一个进程(master进程)来处理互联网请求肯定是不合适的。另外,为什么要把workcer进程数量设置得与CPU核心数量一致呢?这正是Nginx与Apache服务器的不同之处。在Apachc上每个进程在一个时刻只处理一个请求,因此,如果希望Wcb服务器拥有并发处理的请求数更多,就要把Apache的进程或线程数设置得更多,通常会达到一台服务器拥有几百个工作进程,这样大量的进程间切换将带来无谓的系统资源消耗。而Nginx则不然,一个worker进程可以同时处理的请求数只受限于内存大小,而且在架构设计上,不同的worker进程之间处理并发请求时几乎没有同步锁的限制,worker进程通常不会进入睡眠状态,因此,当Nginx上的进程数与CPU核心数相等时(最好每一个worker进程都绑定特定的CPU核心),进程间切换的代价是最小的。

 2.Nginx配置的通用语法

配置文件其实是一个文本文件

user nobody;
worker_processes 8;
error_log varlog/nginx/error.log error;
#pid logs/nginx.pid;
events {
use epoll;
worker_connections 50000;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr [$time_local] "$request" '
'$status $bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main buffer=32k;
…
}

块配置

块配置项由一个块配置项名和一对大括号组成
events {…
}
http {
upstream backend {
server 127.0.0.1:8080;
}
gzip on;
server {
…
location /webstatic {
gzip off;
}
}
}
上面代码段中的events、http、server、location、upstream等都是块配置项,块配置项之后是否如*1ocation/webstatic...}”"那样在后面加上参数,取决于解析这个块配置项的模块,不能一概而论,但块配置项一定会用大括号把一系列所属的配置项全包含进来,表示大括号内的配置项同时生效。所有的事件类配置都要在events块中,http、server等配置也遵循这个规定。
块配置项可以嵌套。内层块直接继承外层块,例如,上例中, server 块里的任意配置都
是基于 http 块里的已有配置的。当内外层块中的配置发生冲突时,究竟是以内层块还是外层
块的配置为准,取决于解析这个配置项的模块。

配置语法

配置项名
        配置项值
                1 配置项值
                       2 …
下面解释一下配置项的构成部分。
首先,在行首的是配置项名,这些配置项名必须是 Nginx 的某一个模块想要处理的,否 Nginx 会认为配置文件出现了非法的配置项名。配置项名输入结束后,将以空格作为分隔
符。
其次是配置项值,它可以是数字或字符串(当然也包括正则表达式)。针对一个配置
项,既可以只有一个值,也可以包含多个值,配置项值之间仍然由空格符来分隔。当然,一
个配置项对应的值究竟有多少个,取决于解析这个配置项的模块。我们必须根据某个 Nginx
模块对一个配置项的约定来更改配置项

配置项的单位

大部分模块遵循一些通用的规定,如指定空间大小时不用每次都定义到字节、指定时间
时不用精确到毫秒。
当指定空间大小时,可以使用的单位包括:
·K或者k千字节(KiloByte,KB)。
·M或者m兆字节(MegaByte,MB)。
gzip_buffers 4 8k;

client_max_body_size 64M;
当指定时间时,可以使用的单位包括:
·ms(毫秒),s(秒),m(分钟),h(小时),d(天),w(周,包含7天),
M(月,包含30天),y(年,包含365天)
expires 10y;
proxy_read_timeout 600;
client_body_timeout 2m;

注意:

配置项后的值究竟是否可以使用这些单位,取决于解析该配置项的模块。如
果这个模块使用了Nginx框架提供的相应解析配置项方法,那么配置项值才可以携带单位。

Nginx服务的基本配置

Nginx 在运行时,至少必须加载几个核心模块和一个事件类模块。这些模块运行时所支
持的配置项称为基本配置 —— 所有其他模块执行时都依赖的配置项。
下面详述基本配置项的用法。由于配置项较多,所以把它们按照用户使用时的预期功能
分成了以下 4
  用于调试、定位问题的配置项。
·正常运行的必备配置项。
·优化性能的配置项。
·事件类配置项(有些事件类配置项归纳到优化性能类,这是因为它们虽然也属于
events{}块,但作用是优化性能)。

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

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

相关文章

RabbitMQ 快速入门-消息的收发

RabbitMQ 快速入门-消息的收发准备工作一、Connection 方式1. 生产者测试类2. 消费者测试类注意二、RabbitTemplate 方式1. 生产者测试类2. 创建队列3. 消费者注意准备工作 推荐创建两个 SpringBoot 项目,一个作为生产者,另一个作为消费者 也可使用 Ma…

数据趣事:历史最高温的是新疆吐鲁番?重庆45℃高温仅排全国第二

全球最冷的地方在哪?最热的又在哪?中国最冷的城市不是哈尔滨而是意想不到的的乌鲁木齐,历史上最高温的省市不是重庆而是新疆吐鲁番......跟随天气最趣事儿大屏一起了解有趣的天气数据吧! 最高温的省市是新疆吐鲁番,曾…

设置线程分离的方法

线程分离的设置方法 1)在创建线程时,利用thread_create函数的参2设置线程分离; 2)创建完线程后,通过pthread_detach函数设置线程分离。 第一种方法效率最高的。 1、创建线程时,设置线程分离 (1)使用 pth…

基于RK3568开源鸿蒙的助农金融服务终端设计方案

背景 2022年中央一号文件《中共中央 国务院关于做好2022年全面推进乡村振兴重点工作的意见》提出,要强化乡村振兴金融服务;《“十四五”推进农业农村现代化规划》强调,健全农村金融服务体系,将“乡村振兴金融服务行动”列入新一轮…

基于杂草优化算法的线性规划问题求解matlab程序

基于杂草优化算法的线性规划问题求解matlab程序 1 杂草算法简介 1.1 IWO定义 IWO是2006年由A. R. Mehrabian等提出的一种从自然界杂草进化原理演化而来的随机搜索算法,模仿杂草入侵的种子空间扩散、生长、繁殖和竞争性消亡的基本过程,具有很强的鲁棒性和…

文本检测与识别技术的应用现状及产业案例

文本检测与识别技术的产业应用现状 文本是人类文明的视觉和物理载体,文本的检测和识别使视觉与对其内容的理解进一步联系起来。在这一部分中,我们列出并分析了对提高我们的生产力和生活质量产生或将产生重大影响的最杰出的项目。 自动数据录入&#xff…

创建Vue项目流程

第一步:创建项目。首先创建一个文件夹,然后找到要创建项目的文件夹 输入CMD 进入小黑窗 输入“vue create 项目名” 创建我们这个项目 第二步:进入版本选择 按上下键选 选择最后的自定义版本 按回车键 第三步: 按上下键进行切换 按…

ESP32基础应用之LVGL基础

文章目录1 实验目的1.1 参考文章2 实验工具3 准备工作3.1 搭建ESP32开发环境3.2 克隆lv_port_esp32工程4 配置lv_port_esp32工程5 实验验证6 使用过程遇到的问题6.1 触摸功能点击屏幕位置不对1 实验目的 本实验为使用ESP32实现LVGL(轻量级的嵌入式图形库&#xff0…

38、Java——汽车租赁系统(JDBC+MySQL+Apache DBUtils)

​ ✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:乐趣国学的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:Java案例…

iptables简述

netfilter iptables的底层实现是netfilter。netfilter实在Linux内核2.4版引入的子系统,作为通用框架提供一套hook函数的管理机制,使得数据包过滤、地址转换、访问控制、连接跟踪等功能得以实现。netfilter的架构就是在整个网络流程中放置了一些钩子&…

[附源码]计算机毕业设计springboot海滨学院学生大创项目申报与审批系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

大中型园区网络拓扑架构

目录 园区出口区 数据中心区 网络管理区 DMZ区 核心层 汇聚层 终端层 接入层 大中型园区网络通常采用核心层为“根”的树形网络架构,拓扑稳定,易于扩展和维护。 园区网络可划分为多个层次:接入层、汇聚层、核心层, 以及多个分区&a…

iwebsec靶场 SQL注入漏洞通关笔记9- 双写关键字绕过

系列文章目录 iwebsec靶场 SQL注入漏洞通关笔记1- 数字型注入_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记2- 字符型注入(宽字节注入)_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记3- bool注入(布尔型盲注&#…

雨水情监测及视频监控解决方案 水库雨水情自动测报系统 介绍 功能 特点

平升电子水雨情自动监测系统/雨水情监测及视频监控解决方案/水库雨水情自动测报系统辅助水利管理部门实现水库雨水情信息“全要素、全量程、全覆盖”自动测报。系统具备水库水位、雨量、现场图像/视频等水文信息采集、传输、处理及预警广播等功能,有效提升了雨水情信…

技术分享 oracle中fm的作用

SQL> select |||to_char(5,999)||| from dual; 结果为:| 5| SQL> select |||to_char(5,000)||| from dual; 结果为:| 005| 如何去除多余的空格? SQL> select |||to_char(5,fm000)||| from dual; 结果为:|005| 空格…

mysql相关基础知识篇(三)

1.一条更新sql语句怎么执行的了解吗? 更新语句的执行是 Server 层和引擎层配合完成,数据除了要写入表中,还要记录相应的日志。 执行器先找引擎获取 ID2 这一行。ID 是主键,存储引擎检索数据,找到这一行。如果 ID2 这…

工业服务被忽视的销售力量:他们的技术人员

目录 1.从销售到服务的普遍 2.从服务到销售的滞后 3.是什么阻碍了售后服务时销售行为的发生 3.如何改善这种状况 1.从销售到服务的普遍 服务销售窗口的提前在工业企业已经是非常普遍的现象,特别是在互联网经济高度发达的今天,销售的触角已经直达消费…

MySQL如何确定查询处理各个阶段所消耗的时间

使用profile set profiling1; 启动profile 这是一个session级的配置 执行查询 show profiles; 查询每一个查询所消耗的总时间信息 show profile for query N; 查询的每个阶段所耗的时间 show profile cpu for query 1; 但是每次使用都会有一个warning 使用performanc…

59 - 类模板与函数模板的深度剖析

---- 整理自狄泰软件唐佐林老师课程 1. 多参数模板 类模板可以定义 任意多个不同的 类型参数 2. 类模板可以被 特化 模板本来是一组通用逻辑的实现,但是可能存在特定的参数类型下,通用的逻辑实现不能满足要求,这时就需要针对这些特殊的类型&…

【密码学基础】RSA加密算法

1 RSA介绍 RSA是一种非对称加密算法,即加密和解密时用到的密钥不同。加密密钥是公钥,可以公开;解密密钥是私钥,必须保密保存。基于一个简单的数论事实:两个大质数相乘很容易,但想要对其乘积进行因式分解却…