1、配置文件结构

Nginx配置文件一般位于Nginx安装目录下的conf目录下。整个文件以block形式组合而成,每一个block都使用"{}"大括号来表示。block中可以嵌套其他block层级。其中main层是最高层次。

Nginx配置文件主要有4部分,main(全局设置)、server(主机设置)、upstream(上游服务器设置,主要为反向代理,负载均衡相关配置)和location(url匹配特定位置的设置),每部分包含若干指令。

  • Main部分的设置影响其他所有部分的设置;
  • Server部分主要用于指定虚拟机主机域名,ip和端口;
  • Upstream的指令用于设置一系列的后端服务器,设置反向代理及后端服务器的负载均衡;
  • Location部分用于匹配网页位置(如,跟目录“/”,”/images”等)。

它们之间的关系是,server继承main,location继承server,upstream既不会继承指令也不会被继承。

在这四个部分当中,每个部分都包含若干指令,这些指令主要包含Nginx的主模块指令、事件模块指令、HTTP核心模块指令,同时每个部分还可以使用其他HTTP模块指令,例如Http SSL模块、HttpGzip Static模块和Http Addition模块等。

真实的nginx配置文件可能如下

2、配置文件位置

配置文件是一些文本文件,通常位于nginx安装目录/etc/nginx/etc/nginx 。主配置文件通常命名为 nginx.conf 。所有和nginx行为相关的配置都应该位于一个集中的配置文件目录中

3、配置文件中的内容

可以将 nginx.conf 配置文件分为三部分:
第一部分:全局块

从配置文件开始到 events 块之间的内容,主要会设置一些影响 nginx 服务器整体运行的配置指令,主要包括配置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。
比如 worker_processes 1;处理并发数的配置

第二部分:events 块

events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 word process 可以同时支持的最大连接数等。
比如 worker_connections 1024; 支持的最大连接数为 1024

第三部分:http 块
这算是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。
需要注意的是:http 块也可以包括 http 全局块server 块
①、http 全局块

http 全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。

②、server 块

这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。 每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。 而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。
1、全局 server 块
最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或 IP 配置。
2、location 块
一个 server 块可以配置多个 location 块。 这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称(也可以是 IP 别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。

4、Nginx的全局配置


①user
user是个主模块指令,指定Nginx Worker进程运行用户以及用户组,默认由nobody账号运行。这个地方如果写错了就会出现获取不到用户的错误

②worker_processes
是个主模块指令,指定了Nginx要开启的进程数。每个Nginx进程平均耗费10M~12M内存。建议指定和CPU的数量一致即可。
这个地方如果配置配置了 worker_processes 2; 那么他的工作进程就有两个

③error_log
是个主模块指令,用来定义全局错误日志文件。日志输出级别有debug、info、notice、warn、error、crit可供选择,其中,debug输出日志最为最详细,而crit输出日志最少。
日志文件路径一般在nginx安装目录的logs目录中

④pid
是个主模块指令,用来指定进程pid的存储文件位置。
运行进程和nginx的master的进程号是一致的,只有nginx运行时才存在,如果nginx停止了 pid也会被删除掉

5、 events事件指令

events事件指令是设定Nginx的工作模式连接数上限

①use
use是个事件模块指令,用来指定Nginx的工作模式。Nginx支持的工作模式有select、poll、kqueue、epoll、rtsig和/dev/poll。其中select和poll都是标准的工作模式,kqueue和epoll是高效的工作模式,不同的是epoll用在Linux平台上,而kqueue用在BSD系统中。对于Linux系统,epoll工作模式是首选。

②worker_connections
也是个事件模块指令,用于定义Nginx每个进程的最大连接数,默认是1024。最大客户端连接数由worker_processes和worker_connections决定,即Max_client=worker_processes*worker_connections
在作为反向代理时,max_clients变为:max_clients = worker_processes * worker_connections/4
进程的最大连接数受Linux系统进程的最大打开文件数限制,在执行操作系统命令“ulimit -n 65536”worker_connections的设置才能生效。

Nginx 的配置文件相关推荐

  1. Nginx主配置文件nginx.conf详细说明

    第3章 Nginx核心配置文件nginx.conf史上最细中文详解 3.1定义Nginx运行的用户和用户组 user nginx nginx;#改为特殊的用户和组 3.2 nginxworker进程数 ...

  2. nginx指定配置文件启动

    nginx -c 配置文件路径 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

  3. Nginx之nginx.conf 配置文件(二)

    上一篇博客我们将 nginx 安装在 /usr/local/nginx 目录下,其默认的配置文件都放在这个目录的 conf 目录下,而主配置文件 nginx.conf 也在其中,后续对 nginx 的 ...

  4. Nginx的配置文件nginx.conf详解

    Nginx的配置文件nginx.conf配置详解如下: user nginx nginx ; Nginx用户及组:用户 组.window下不指定 worker_processes 8; 工作进程:数目 ...

  5. Nginx(二)------nginx.conf 配置文件

    上一篇博客我们将 nginx 安装在 /usr/local/nginx 目录下,其默认的配置文件都放在这个目录的 conf 目录下,而主配置文件 nginx.conf 也在其中,后续对 nginx 的 ...

  6. Nginx的配置文件位置以及组成部分结构讲解

    场景 Ubuntu Server 16.04 LTS上怎样安装下载安装Nginx并启动: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/detai ...

  7. Nginx 源码分析-- 模块module 解析执行 nginx.conf 配置文件流程分析 一

    搭建nginx服务器时,主要的配置文件 nginx.conf 是部署和维护服务器人员经常要使用到的文件, 里面进行了许多服务器参数的设置.那么nginx 以模块 module为骨架的设计下是如何运用模 ...

  8. nginx指定配置文件启动_NGINX安全加固手册

    NIGNX系统安全 基线规范 1.概述 1.1 适用范围 本配置标准的使用者包括:各事业部服务器负责人. 各事业部服务器负责人按规范要求进行认证.日志.协议.补丁升级.文件系统管理等方面的安全配置要求 ...

  9. Nginx主配置文件nginx.conf中文详解

    第1章 nginx配置解释图解 第2章 Nginx核心配置文件nginx.conf史上最细中文详解 2.1 定义Nginx运行的用户和用户组 2.2 nginxworker进程数,即处理请求的进程(熟 ...

  10. nginx.conf 配置文件详解

    本文来说下nginx.conf 配置文件详解 文章目录 Nginx 配置文件概述 nginx.conf 配置文件 通用(这里是 windows 系统系 nginx1.14.2 下 nginx.conf ...

最新文章

  1. tf.keras.losses.BinaryCrossentropy 损失函数 示例
  2. 今夜,我又坐在电脑面前想你
  3. life at University of Liverpool
  4. 微信小程序- 初试小程序之tabbar(选项卡,底部导航)的使用
  5. 基于上一篇AS项目依赖库问题的优化解决方案
  6. 安卓手机刷软路由_华为路由AX3 Pro上手测评:用过最方便的路由器,没有之一...
  7. Autokroma AfterCodecs for Mac - 与众不同的特殊编码渲染插件
  8. 如何查看电脑是几核几线程
  9. qt如何在TetxEdit设置背景色(可以设置行或列)
  10. 北理计算机考研复试经验贴
  11. 最新简约轻量版H5手机微商城运营源码对接最新Z支付个人免签接口
  12. 浏览器window对象
  13. 56腾讯搜狐优酷视频,utubu 视频去重去水印去logo字幕工具 搜狐网易爱拍b站视频,今日头条视频...
  14. 摄像头、麦克风、耳麦免费在线检测(各种外设的在线检测网站)
  15. Qt5工程文件详解及使用方法
  16. python如何画3个相切的圆_使用python绘制4个相切的圆形
  17. 什么是,泛化能力,过拟合,欠拟合,不收敛,奥卡姆剃刀?
  18. 如何正确修改标题,如何修改标题不会被降权?
  19. 基于FMCW技术的汽车自适应巡航控制
  20. C语⾔程序设计——算法的基本概念

热门文章

  1. Android实现本地图片、视频左右镜像翻转
  2. gc方法写法_Unity3D研究院之字符串拼接0GC(一百零四)
  3. 邮箱地址采集的10个经典方法
  4. 恶意软件沙盒规避技术与原理详解
  5. .net c#通过Exif获取图片信息(参数)
  6. 计算机常用英语词汇 短语,四级英语常用词汇短语
  7. c语言 桌面下雪程序,[Lazarus]使用Lazarus编写的桌面下雪小程序
  8. 多线程读文本写入OracleNoSQL数据库
  9. 火狐插件Adblock Plus自定义功能屏蔽网易博客广告
  10. 计算机word水印在哪,word中如何加入水印的两种方法