nginx.conf配置项
环境:centos7 nginx1.16.1
以下配置均在配置文件中进行:/etc/nginx/nginx.conf
1.设置工作进程的所有者和所属组
user 所有者 所属组;
设置后要在操作系统中设置该用户和用户组
/usr/sbin/groupadd www /usr/sbin/useradd -g www www
2. 网络连接事件模型设置
event{
accept_mutex on; #设置网路连接序列化,防止惊群现象发生,默认为on
multi_accept on; #设置一个进程是否同时接受多个网络连接,默认为off
worker_connections 1024; #每个工作进程的最大连接数,默认为512
use epoll; #参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ];
}
3. 服务器返回文件的MIME类型设置
include mime.types; #引入的mime.types文件用来帮助http协议判断网页文件的MIME类型,该项作用域 http server
mime.types文件:文件扩展名与文件类型映射表 服务器根据mime.types文件,由网页文件扩展名得到其MIME类型,并加在响应头中发送给浏览器
default_type application/octet-stream #当文件类型未定义时,默认返回的MIME类型。作用域为 location http
注意:图片,音频,视频等文件要在html文件才能被浏览器展示和播放,但如果不设置default_type application/octet-stream 这一项,服务器直接返回MIME类型为
image/jpeg ,audio/mp4...的响应头,浏览器不会有任何动作,设置此类文件为二进制流后,浏览器接受到该响应头,会产生一个下载窗口,从而在客户端获取服务器文件
设置MIME类型为application/octet-stream(二进制流文件,浏览器打开会出现下载)
4. 客户端相关配置
client_max_body_size 10m; #客户端请求服务器时发送的请求主体最大容量。该配置项作用域http,server,location 。值为0,则不受限制
client_header_buffer_size 32k; #用于指定来自客户端请求头缓冲区大小,对于大多数请求,1KB的缓冲区大小已经足够,如果自定义了消息头或有更大的cookie,可以增加缓冲区大小。
large_client_header_buffers 4 64k; #设置客户端请求头的缓冲区的最大数目和大小。请求行不能超过一个缓冲区的大小,请求头字段也不能超过一个缓冲区的大小。缓冲区仅按需分配。
默认情况下,缓冲区大小等于8K字节。如果在请求处理结束后,连接转换为keep alive状态,则释放这些缓冲区。
client_body_temp_path filename [level1] [level2 ] [lever3 ]; #设定服务器用于存储客户端请求报body部分的临时存储路径及子目录结构和数量
level1:一级目录个数,1表示目录数不超过1位16进制数,故最大值为16
level2:二级目录个数,2表示目录数不超过2位16进制数,故最大值为16*16=256
level3:三级目录个数
client_body_buffer_size 32k; #设定服务器用于接收每个客户端请求报文的body部分的缓冲区大小;默认为16k;
5. 文件传输方式设置
sendfile on; #以sendfile方式传输文件,默认开启。作用域:http location server
指定是否使用sendfile系统调用来传输文件。sendfile系统调用在两个文件描述符之间直接传递数据(完全在内核中操作),
从而避免了数据在内核缓冲区和用户缓冲区之间的拷贝,操作效率很高,被称之为零拷贝。
- 调用read函数,文件数据拷贝到内核缓冲区
- read函数返回,数据从内核缓冲区拷贝到用户缓冲区
- 调用write/send函数,将数据从用户缓冲区拷贝到内核socket缓冲区
- 数据从内核socket缓冲区拷贝到协议引擎中
在这个过程当中,文件数据实际上是经过了四次拷贝操作:
硬盘—>内核缓冲区—>用户缓冲区—>内核socket缓冲区—>协议引擎
sendfile传输方式:
1. sendfile系统调用利用DMA引擎将文件数据拷贝到内核缓冲区,之后数据被拷贝到内核socket缓冲区中
2. DMA引擎将数据从内核socket缓冲区拷贝到协议引擎中
硬盘—>内核缓冲区—>内核socket缓冲区—>协议引擎
(1)客户端请求头超时时间
address 监听的主机,即web服务主机
default_server 该虚拟主机设定为默认虚拟主机
ssl 限制仅能够通过ssl连接提供服务,即只能以https访问
backlog=number 超过并发连接数后,新请求进入后援队列的长度
rcvbuf=size 接收缓冲区大小
sndbuf=size 发送缓冲区大小
nginx.conf配置项的更多相关文章
- CentOS下配置nginx conf/koi-win为同一文件的各类错误
今天配置CentOS6.5下安装Nginx + php7 + mysql5.7.15遇到了一些坑.本来家里的电脑在配置环境的时候没有问题,拿去公司的电脑上就是到处报错.不知道是不是人品问题.今晚在家重 ...
- Nginx的配置文件(nginx.conf)解析和领读官网
步骤一:vi nginx.conf配置文件,参考本博文的最下面总结,自行去设置 最后nginx.conf内容为 步骤二:每次修改了nginx.conf配置文件后,都要reload下. index.ht ...
- nginx系列 3 nginx.conf介绍(1)
一. nginx.conf 文件结构概述 在第一篇中讲到nginx的安装,安装完后,默认的nginx服务器配置文件都存在安装目录conf中,主配置文件名为nginx.conf.下面是我linux系统安 ...
- nginx作为web服务以及nginx.conf详解
Nginx系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html 1.nginx简介 nginx是一个优秀的web服务程序.反向代理程序.它采用非 ...
- nginx重要配置项简要说明
1.重要配置项 以下是一个完整的nginx配置信息. #================================以下是全局配置项 #指定运行nginx的用户和用户组,默认情况下该选项关闭(关闭 ...
- nginx.conf的完整配置说明
#用户 用户组 user www www; #工作进程,根据硬件调整,有人说几核cpu,就配几个,我觉得可以多一点 worker_processes 5: #错误日志 error_log logs/e ...
- Nginx配置文件nginx.conf中文详解(转)
######Nginx配置文件nginx.conf中文详解##### #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_ ...
- <nginx.conf> nginx用户权限
Nginx用户权限 在nginx.conf文件的第一行一般是设置用户的地方(编译安装nginx时的参数--user=<user>也是指定用户的地方),如 user www www; 如不指 ...
- nginx.conf中配置laravel框架站点
nginx.conf配置如下: user nginx nginx;worker_processes 4; error_log logs/error.log error; pid logs/nginx. ...
随机推荐
- vue+element 表格筛选
筛选是element 组件 自己有的东西,按照文档撸 是没有问题 这里存在一个情况是,如果 筛选 的数据没有 那么整个表格为空白,产品要加提示 例如:暂无筛选的数据 解决方案:通过 ref 获取整 ...
- Java 集合系列之三:Set基本操作
1. Java Set 1. Java Set 重要观点 Java Set接口是Java Collections Framework的成员. Set不允许出现重复元素-----------无重复 Se ...
- Spring Cloud @RefreshScope 原理是什么?
要清楚RefreshScope,先要了解Scope Scope(org.springframework.beans.factory.config.Scope)是Spring 2.0开始就有的核心的概念 ...
- No module named 'paddle.fluid'
问题 win10笔记本,安装了paddlepadde,但是仍然报错,No module named 'paddle.fluid'. 解决 在py文件中,我先下载并且引入了paddle,后来又安装.引入 ...
- 利用ApplicationListener和ContextRefreshedEvent加载自己的beanPool
基本原理: 1.Spring的ApplicationListener和ContextRefreshedEvent一般都是成对出现的. 2.在IOC的容器的启动过程中,当所有的bean都已经处理完成之后 ...
- 解决ajax跨域请求问题
自己做网站的时候,经常遇到跨域问题,下面是平时多次实践总结出的解决方法,大家有什么更好的思路,可以相互交流下~ XMLHttpRequest cannot load http://www.imooc. ...
- C++指针与数组、函数、动态内存分配
C++指针 指针是用来存储地址的变量. 对于二维数组来说: a:代表的是首行地址: *a:代表的是首元素地址: **a:首元素: a+1:第二行地址: *a+2:首先*a是首元素地址,在首元素地址上+ ...
- python之路——阅读目录
阅读目录 希望大家多多交流,有错误的地方请随时指正,笔记记得可能有点杂 一.python入门 计算机基础 编程语言发展史和python安装 二.数据类型.字符编码.文件处理 python基础数据类型 ...
- Jenkins教程(四)安装BlueOcean与Maven构建
前言 本文旨在使用BlueOcean实现构建可视化与使用Maven构建上一节Jenkins教程(三)添加凭据与流水线拉取Git代码拉下来的代码 什么是Blue Ocean Blue Ocean 重新思 ...
- C++强大背后
转自MiloYip大神的博客 [原文]http://www.cnblogs.com/miloyip/archive/2010/09/17/behind_cplusplus.html 在31年前(197 ...