nginx教程第三篇:nginx进程间的关系和通用语法

2024-08-27 23:58

本文主要是介绍nginx教程第三篇:nginx进程间的关系和通用语法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、Nginx进程间的关系和通用语法
1. 运行中Nginx进程间的关系

在正式提供服务的产品环境下, 部署Nginx时都是使用一个master进程来管理多个worker
进程, 一般情况下, worker进程的数量与服务器上的CPU核心数相等。 每一个worker进程都是繁忙的, 它们在真正地提供互联网服务, master进程则很“清闲”, 只负责监控管理worker进程。 worker进程之间通过共享内存、原子操作等一些进程间通信机制来实现负载均衡等功能。

Nginx是支持单进程( master进程) 提供服务的, 那么为什么产品环境下要按照masterworker方式配置同时启动多个进程呢? 这样做的好处主要有以下两点:

1. 由于master进程不会对用户请求提供服务,只用于管理真正提供服务的worker进程,所以master进程
可以是唯一的, 它仅专注于自己的纯管理工作,为管理员提供命令行服务,包括诸如启动服务、 停止服务、 
重载配置文件、 平滑升级程序等。 master进程需要拥有较大的权限, 例如, 通常会利用root用户启动
master进程。 worker进程的权限要小于或等于master进程,这样master进程才可以完全地管理worker进程。 当任意一个worker进程出现错误从而导
致coredump时, master进程会立刻启动新的worker进程继续服务。2. 多个worker进程处理互联网请求不但可以提高服务的健壮性( 一个worker进程出错后, 其他worker进程
仍然可以正常提供服务) 
2. Nginx配置的通用语法
2.1 块配置项

块配置项由一个块配置项名、参数(非必须)和一对大括号组成。 具体示例如下:

events {…
} http {upstream backend {server 127.0.0.1:8080;} gzip on;server {…location /webstatic {gzip off;}}
}

上面代码段中的events、 http、server、location、upstream等都是
块配置项,块配置项之后是否如“location /webstatic{…}”那样在后面加上参数, 取决于解析这个块配置项的模块,不能一概而论, 但块配置项一定会用大括号把一系列所属的配置项全包含进来, 表示大括号内
的配置项同时生效。 所有的事件类配置都要在events块中, http、 server等配置也遵循这个规定。
块配置项可以嵌套。 内层块直接继承外层块

2.2 配置项的语法格式

语法格式:

配置项名 配置项值 配置项值 … ; 说明:配置项由配置项名和配置项值组成;块配置项由多个配置项组成;例如:
user nobody;    // 配置项名 配置项值
worker_processes 8;
error_log varlog/nginx/error.log error;
  • 首先, 在行首的是配置项名, 这些配置项名必须是Nginx的某一个模块想要
    处理的, 否则Nginx会认为配置文件出现了非法的配置项名。 配置项名输入结束后, 将以空格作为分隔符
  • 其次是配置项值, 它可以是数字或字符串( 当然也包括正则表达式) 。 针对一个配置项, 既可以只有一个值, 也可以包含多个值, 配置项值之间仍然由空格符来分隔
  • 最后, 每行配置的结尾需要加上分号
2.3 配置项的注释

如果有一个配置项暂时需要注释掉, 那么可以加“#”注释掉这一行配置。 例如:

#pid logs/nginx.pid;
2.4 配置项单位

大部分模块遵循一些通用的规定, 如指定空间大小时不用每次都定义到字节、 指定时间时不用精确到毫秒。

当指定空间大小时, 可以使用的单位包括:
  • K或者k千字节( KiloByte, KB)
  • M或者m兆字节( MegaByte, MB)
    例如:
gzip_buffers 48k;
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;
2.5 在配置中使用变量

有些模块允许在配置项中使用变量, 如在日志记录部分, 具体示例如下:

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

其中, remote_addr是一个变量, 使用它的时候前面要加上$符号。 需要注意的是, 这种
变量只有少数模块支持, 并不是通用的。

这篇关于nginx教程第三篇:nginx进程间的关系和通用语法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

Python使用Code2flow将代码转化为流程图的操作教程

《Python使用Code2flow将代码转化为流程图的操作教程》Code2flow是一款开源工具,能够将代码自动转换为流程图,该工具对于代码审查、调试和理解大型代码库非常有用,在这篇博客中,我们将深... 目录引言1nVflRA、为什么选择 Code2flow?2、安装 Code2flow3、基本功能演示

Windows 系统下 Nginx 的配置步骤详解

《Windows系统下Nginx的配置步骤详解》Nginx是一款功能强大的软件,在互联网领域有广泛应用,简单来说,它就像一个聪明的交通指挥员,能让网站运行得更高效、更稳定,:本文主要介绍W... 目录一、为什么要用 Nginx二、Windows 系统下 Nginx 的配置步骤1. 下载 Nginx2. 解压

Java Spring 中的监听器Listener详解与实战教程

《JavaSpring中的监听器Listener详解与实战教程》Spring提供了多种监听器机制,可以用于监听应用生命周期、会话生命周期和请求处理过程中的事件,:本文主要介绍JavaSprin... 目录一、监听器的作用1.1 应用生命周期管理1.2 会话管理1.3 请求处理监控二、创建监听器2.1 Ser

MySQL 安装配置超完整教程

《MySQL安装配置超完整教程》MySQL是一款广泛使用的开源关系型数据库管理系统(RDBMS),由瑞典MySQLAB公司开发,目前属于Oracle公司旗下产品,:本文主要介绍MySQL安装配置... 目录一、mysql 简介二、下载 MySQL三、安装 MySQL四、配置环境变量五、配置 MySQL5.1

MQTT SpringBoot整合实战教程

《MQTTSpringBoot整合实战教程》:本文主要介绍MQTTSpringBoot整合实战教程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录MQTT-SpringBoot创建简单 SpringBoot 项目导入必须依赖增加MQTT相关配置编写

在Java中基于Geotools对PostGIS数据库的空间查询实践教程

《在Java中基于Geotools对PostGIS数据库的空间查询实践教程》本文将深入探讨这一实践,从连接配置到复杂空间查询操作,包括点查询、区域范围查询以及空间关系判断等,全方位展示如何在Java环... 目录前言一、相关技术背景介绍1、评价对象AOI2、数据处理流程二、对AOI空间范围查询实践1、空间查

Logback在SpringBoot中的详细配置教程

《Logback在SpringBoot中的详细配置教程》SpringBoot默认会加载classpath下的logback-spring.xml(推荐)或logback.xml作为Logback的配置... 目录1. Logback 配置文件2. 基础配置示例3. 关键配置项说明Appender(日志输出器

Nginx 413修改上传文件大小限制的方法详解

《Nginx413修改上传文件大小限制的方法详解》在使用Nginx作为Web服务器时,有时会遇到客户端尝试上传大文件时返回​​413RequestEntityTooLarge​​... 目录1. 理解 ​​413 Request Entity Too Large​​ 错误2. 修改 Nginx 配置2.1

Kali Linux安装实现教程(亲测有效)

《KaliLinux安装实现教程(亲测有效)》:本文主要介绍KaliLinux安装实现教程(亲测有效),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载二、安装总结一、下载1、点http://www.chinasem.cn击链接 Get Kali | Kal

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.