| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 二、Nginx之nginx.conf配置文件详解 -> 正文阅读 |
|
[系统运维]二、Nginx之nginx.conf配置文件详解 |
目录 2.2.1?accept_mutex,设置Nginx网络连接序列化 2.2.2?multi_accept,用来设置是否允许同时接收多个网络连接 2.2.3 worker_connections:用来配置单个worker进程最大的连接数 2.2.4?use:用来设置Nginx服务器选择哪种事件驱动来处理网络消息 一、 全局块1.1 概况? ? ? ? 全局模块主要是用于配置关于master和work进程相关内容,以及nginx的用户(权限)、日志等。 1.2 nginx用户权限1.2.1 user ????????
注意: ① 默认值为 nobody。 ? ? ? ? ? ? ② 配置静态文件等情况,有无法访问的时候,需要查看文件权限及其所属用户信息。 1.3 master及其works进程控制1.3.1 master_process:
注意: ①默认开启master进程。 ? ? ? ? ? ? ②关闭后,不在有master进程和worker进程区别,只有一条进程进行服务提供。 1.3.2 worker_processes
注意:① 只有master_process on;开启时才会生效 ? ? ? ? ? ?② 默认值为1,值大小需要具体情况具体分析,但是一般设置为cpu处理核数量。 1.4 其他控制1.4.1 daemon????????设定Nginx是否以守护进程的方式启动,不会随着终端关闭而停止。
1.4.2 access_log
注意: ① 上文用了相对路径,即相对于prefix路径(/usr/local/nginx) ? ? ? ? ? ? ② 这个配置既可以作为全局配置,也可以为server、location单独配置 1.4.3 error_log
注意: ① 上文用了相对路径,即相对于prefix路径(/usr/local/nginx) ? ? ? ? ? ? ② 这个配置既可以作为全局配置,也可以为server、location单独配置 1.4.4 include
注意: ????????① 当nginx要配置多个模块的时候,比如多个service,那么为了方便模块管控,一个service可以使用一个conf文件进行配置 ????????② 可以使用*.conf进行通配匹配,我们一般会将这些放到一个我们定制的目录之中
|
值? ? ? ? | 释义 |
filePath | 指定其他模块的conf文件,eg: include: other/*.conf |
? ? ? ? 开启该选项表示所有worker进程轮流的接受新的请求。默认情况下,一旦有新的请求都会通知所有的worker进程。如果新连接的数量较低,那所有请求都会通知一遍worker进程,造成系统资源浪费。?
? ? ? ? 建议开启,以免引起惊群效应
值? ? ? ? | 释义 |
on???????? | 开启??eg:? multi_accept: on; |
off? ? ? ? ? ? ? ? ? ?? | 关闭 (默认值)。eg: multi_accept: off; |
????????如果multi_accept被禁止了,nginx一个工作进程只能同时接受一个新的连接。否则,一个工作进程可以同时接受所有的新连接。
? ? ? ? 建议开启,否则效率太低了
值? ? ? ? | 释义 |
number | eg: worker_connections: 512 (默认值) |
????????这里的连接数不仅仅包括和前端用户建立的连接数,而是包括所有可能的连接数。另外,number值不能大于操作系统支持打开的最大文件句柄数量。
值? ? ? ? | 释义 |
method | eg: use: epoll? ? ? ?(默认值:系统方案)? |
注意:① 一般有? select、poll、epoll三种方案,默认为系统方案
? ? ? ? ? ?② 建议使用epoll
????????????????
????????对于http公共模块, 主要配置server公共 部分的内容:
? ?3.1.1??include? ? 如果我们将一个端口作为一个项目服务组,那么公共部分譬如日志的格式,文件缓存、服务的默认请求类型都可以在这里配置。? 甚至可以将server内容单独封装成一个conf文件,由include进行引入,语法: include? ?[filepath];? ? 这里的mime.types是处理不同的文件对应的请求类型。
? ?3.1.2 keepalive_timeout 65; 表示连接超时活跃的时间长,单位为秒。其他后续会用到。
????????
server 公共配置部分主要配置:
?3.2.1 listen : 监听的端口号。
?3.2.2 location :? 主要是匹配请求的前缀,例如 / 将匹配所有的请求。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? error_page? ?xxxx。 则是将错误码为xxxx的请求到50x.html文件(html目录下)
?location 主要是将匹配来的请求进行访问、代理、反向代理、转发等方式提供服务。
? 也就是location主要配置的几块内容包含于下面几个内容(常见):
? ? 1.? 静态文件的访问(例如前端项目、静态文件等、错误码指向文件)
? ? 2.? 转发请求,rewrite
? ? 3.? 进行代码及其负载均衡的策略? ? proxy_paas \ upstream 等。
? ? 4.? 对请求的request内容进行一些策略的提供(包括添加一些参数等)
? 当然这里只是做简单的了解即可,后续会对此内容进行扩展了解
? ? ? ? ?select和poll都是直接使用linux内核的文件集,但是select有所限制,poll没有限制,故poll比select会高效一些。
? ? ? ? epoll方式则是,linux内核会创建一个epoll文件集的红黑树,其单独的空间检索更为快速,处理也就更快,且没有限制,故为高效。
? ? ? ? 具体详见搞懂Select,Poll,Epoll的区别-IT乾坤技术博客
参考资料:? 1. 黑马程序员介绍
? ? ? ? ? ? ? ? ? ? 2. 博客:搞懂Select,Poll,Epoll的区别-IT乾坤技术博客
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 20:38:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |