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

相关文章

Linux kill正在执行的后台任务 kill进程组使用详解

《Linuxkill正在执行的后台任务kill进程组使用详解》文章介绍了两个脚本的功能和区别,以及执行这些脚本时遇到的进程管理问题,通过查看进程树、使用`kill`命令和`lsof`命令,分析了子... 目录零. 用到的命令一. 待执行的脚本二. 执行含子进程的脚本,并kill2.1 进程查看2.2 遇到的

MyBatis常用XML语法详解

《MyBatis常用XML语法详解》文章介绍了MyBatis常用XML语法,包括结果映射、查询语句、插入语句、更新语句、删除语句、动态SQL标签以及ehcache.xml文件的使用,感兴趣的朋友跟随小... 目录1、定义结果映射2、查询语句3、插入语句4、更新语句5、删除语句6、动态 SQL 标签7、ehc

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

全网最全Tomcat完全卸载重装教程小结

《全网最全Tomcat完全卸载重装教程小结》windows系统卸载Tomcat重新通过ZIP方式安装Tomcat,优点是灵活可控,适合开发者自定义配置,手动配置环境变量后,可通过命令行快速启动和管理... 目录一、完全卸载Tomcat1. 停止Tomcat服务2. 通过控制面板卸载3. 手动删除残留文件4.

Python的pandas库基础知识超详细教程

《Python的pandas库基础知识超详细教程》Pandas是Python数据处理核心库,提供Series和DataFrame结构,支持CSV/Excel/SQL等数据源导入及清洗、合并、统计等功能... 目录一、配置环境二、序列和数据表2.1 初始化2.2  获取数值2.3 获取索引2.4 索引取内容2

python依赖管理工具UV的安装和使用教程

《python依赖管理工具UV的安装和使用教程》UV是一个用Rust编写的Python包安装和依赖管理工具,比传统工具(如pip)有着更快、更高效的体验,:本文主要介绍python依赖管理工具UV... 目录前言一、命令安装uv二、手动编译安装2.1在archlinux安装uv的依赖工具2.2从github

C#实现SHP文件读取与地图显示的完整教程

《C#实现SHP文件读取与地图显示的完整教程》在地理信息系统(GIS)开发中,SHP文件是一种常见的矢量数据格式,本文将详细介绍如何使用C#读取SHP文件并实现地图显示功能,包括坐标转换、图形渲染、平... 目录概述功能特点核心代码解析1. 文件读取与初始化2. 坐标转换3. 图形绘制4. 地图交互功能缩放

Java 中的 equals 和 hashCode 方法关系与正确重写实践案例

《Java中的equals和hashCode方法关系与正确重写实践案例》在Java中,equals和hashCode方法是Object类的核心方法,广泛用于对象比较和哈希集合(如HashMa... 目录一、背景与需求分析1.1 equals 和 hashCode 的背景1.2 需求分析1.3 技术挑战1.4

Python Excel 通用筛选函数的实现

《PythonExcel通用筛选函数的实现》本文主要介绍了PythonExcel通用筛选函数的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录案例目的示例数据假定数据来源是字典优化:通用CSV数据处理函数使用说明使用示例注意事项案例目的第一