链接:nginx配置详细解析

1. C10k问题:无法同时并发超过(1w)客户端请求而出现的问题。

  nginx默认配置超过1w并发;

2.配置文件conf/nginx.conf

(1)user   www  www;
  #定义Nginx运行的用户和用户组
2)worker_processes 8;
  #启动进程,通常设置成和cpu数量相等; (3)worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 100000000 ;
  #为每个进程分配cpu,上例中将8个进程分配到8个cpu;可以将一个进程分配多个cpu;
  #ab压测命令,可以进行并发测试; (4)worker_rlimit_nofile 1024;
  #最多打开文件描述符的数量;内核在同一时间可以打开的socket文件的数量。和最大并发数量相等。一个进程接收的最大请求数。
  #文件描述符:内核利用文件描述符来访问文件;文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。
  #Nginx进程能够处理的socket的数量,受限于服务端对进程fd(文件描述符)数量的限制。如果设置了unlumited(不限制),则会受限于操作系统内存,打开文件描述符需要消耗内存。
  #读写文件也需要使用文件描述符来指定待读写的文件。
  #ulimit -n 可以修改文件描述符数量
  #查看进程打开文件描述符处理请求: cd /proc/进程号/fd
  #proc:Linux服务器状态信息存放目录; (5)error_log /usr/local/nginx/logs/error.log info;
  #错误日志定义等级debug|ifo|notice|warn|error|crit;越往后等级越高,信息越少;越往前信息越多;
  #关闭错误日志:error_log /dev/null;
  #日志可以配置在全局段、http段、server段、location段。同一个段中只允许出现一个error_log;一般配置在server段,或http段;生产环境建议配置级别为warn; (6)pid /usr/local/nginx/nginx.pid
  #工作模式及连接数上限; (7)use epoll;
  #epoll是多路复用IO中的一种方式,可以提高nginx的性能。
  #nginx服务器处理和响应web请求的过程,是基于事件驱动模型的;事件驱动处理库又被称为多路IO复用方法;最常见三种模型:select模型、poll模型、epoll模型;
  #请求处理跟网络I/O模型相关,在计算机系统中I/O就是输入输出的意思;
  #网络I/O是用户态和内核态之间的数据交换。
  #用户发送请求给网卡eth0; -> 请求发送给10.0.0.8:80; -> 由端口应用进程通过系统调用(read)-> 由用户态转到内核态 ->内核将请求的数据转发到内核缓冲区
    -> 应用进程查看内核缓冲区是否有数据 -> 如果有,则把数据拷贝到用户态 -> 完成I/O操作; (8)worker_connection  10000;
  #单个后台worker_process进程的最大并发连接数(最大连接数=连接数x进程数);也就是单个进程能够接收的请求数; (9)multi_accept on;
  #尽可能多的接受请求;默认开启;   -------------------------------------
(10)include mime.types;
  #识别网站资源类型,推送调用浏览器默认功能;
  default_type application/octet-stream;
  #默认类型; (11)access_log /usr/local/nginx/log/nginx/access.log;
  #设定日志格式; (12)charset UTF-8;
  #设置标准字符集 (13)sendfile on;
  #加速访问函数;开启会加速访问;会在cpu的缓存区生成函数调用,加速tcp socket的请求; (14)autoindex on;
  #开启目录列表访问,适合下载服务器,默认关闭; (15)tcp_nopush on;
  #防止网络阻塞。当应用程序产生数据时,内核不会立马封包,而是当数据累积到一定量时才会封装,然后传输。这样有助于解决网络阻塞问题。调用一个tcp_cork方法调用。 (16)keepalive_timeout 65;
  #超时时间,客户端到服务器端的连接持续有效时间当出现对服务器的后续请求时,keepalive_timeout功能可以避免建立或重新建立连接。(节省服务器资源、cpu、内存、网卡) (17)tcp_nodelay on;
  #提高数据的实时响应性; (18)开启gzip压缩
  gzip on;
  gzip_min_length 1k;
  gzip_buffers   4 128k;
  gzip_http_version  1.1;
  gzip_comp_level  4;
  #压缩级别最大为9,级别越小压缩比例越小,cpu处理越快。级别越高,消耗cpu就越高。
  gzip_types  test/plain application/x-javascript text/css application/xml; #指定压缩文件类型;
  gzip_proxied any; #压缩所有类型文件;
  gzip_vary on; (19)client_mas_body_size 10m;
  #允许客户端请求的最大单文件字节数; (20)client_body_buffer_size 128k;
  #缓冲区 代理缓冲用户端 请求的 最大字节数; (21)proxy_connect_timeout 300;
  #nginx 跟后端服务器连接超时时间(代理连接超时); (22)proxy_send_timeout 300;
  #后端服务器数据回传时间,超过300秒未回传,返回502错误,服务器未反应请求
(23)proxy_read_timeout 300;
  #连接成功后,后端服务器响应时间;
(24)proxy_buffer_size 4k;
  #设置代理服务器保存用户头信息的缓冲区大小;
(25)proxy_buffers 4 32k;
  #proxy——buffers缓冲区,网页平均在32k以下时这样设置:proxy_busy_buffers_size 64k;
(26)large_client_header_buffers 4 16k;
  client_header_buffer_size 4k;
  #客户端请求头部的缓冲区大小,这个可以根据系统分页大小来设置,一般一个请求的头部大小不会超过1k;
  #不过由于一般系统分页都要大于1k,所以这里设置为分页大小。分页大小可以用命令getcof PAGESIZE取得。
(27)open_file_cache max=1G inactive=20s;
  #为打开文件指定缓存,默认时没有启用的,max指定缓存数量,建议和打开文件数一致;inactive是指经过多长时间文件没有背请求后删除缓存;
(28)open_file_cache_valid 30s;
  #这个是指多长时间检查一次缓存的有效信息;
(29)open_file_cache_min_uses 1;
  #open_file_cache指令中的inactive参数时间内文件的最少是使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的;
  

Nginx 配置整理的更多相关文章

  1. Nginx配置整理

    不论是本地开发,还是远程到 Server 开发,还是给提供 demo 给人看效果,我们时常需要对 Nginx 做配置,Nginx 的配置项相当多,如果考虑性能配置起来会比较麻烦.不过,我们往往只是需要 ...

  2. 用lua扩展你的Nginx(整理)-----openresty

    用lua扩展你的Nginx(整理) 首先得声明.这不是我的原创,是在网上搜索到的一篇文章,原著是谁也搞不清楚了.按风格应该是属于章亦春的文章. 整理花了不少时间,所以就暂写成原创吧. 一. 概述 Ng ...

  3. 你需要知道的Nginx配置二三事

    做服务端开发的,工作中难免会遇到处理Nginx配置相关问题.在配置Nginx时,我一直本着“照葫芦画瓢”的原则,复制已有的配置代码,自己修修改改然后完成配置需求,当有人问起Nginx相关问题时,其实仍 ...

  4. [转帖]nginx基础整理

    nginx基础整理 https://www.cnblogs.com/guigujun/p/6588545.html 目录结构如下: Nginx基础知识 Nginx HTTP服务器的特色及优点 Ngin ...

  5. Laradock + tp5 + nginx 配置虚拟机域名始终跳转首页/502报错

    laradock默认配置文件如下: 配置运用于本地windows+phpstudy 部署的laravel项目未出现问题,如下: server { listen ; listen [::]:; serv ...

  6. nginx配置反向代理或跳转出现400问题处理记录

    午休完上班后,同事说测试站点访问接口出现400 Bad Request  Request Header Or Cookie Too Large提示,心想还好是测试服务器出现问题,影响不大,不过也赶紧上 ...

  7. Windos环境用Nginx配置反向代理和负载均衡

    Windos环境用Nginx配置反向代理和负载均衡 引言:在前后端分离架构下,难免会遇到跨域问题.目前的解决方案大致有JSONP,反向代理,CORS这三种方式.JSONP兼容性良好,最大的缺点是只支持 ...

  8. Windows下Nginx配置SSL实现Https访问(包含证书生成)

    Vincent.李   Windows下Nginx配置SSL实现Https访问(包含证书生成) Windows下Nginx配置SSL实现Https访问(包含证书生成) 首先要说明为什么要实现https ...

  9. Nginx 配置简述

    不论是本地开发,还是远程到 Server 开发,还是给提供 demo 给人看效果,我们时常需要对 Nginx 做配置,Nginx 的配置项相当多,如果考虑性能配置起来会比较麻烦.不过,我们往往只是需要 ...

随机推荐

  1. Java 用单向循环链表实现 约瑟夫问题

    public class lianbiao2 { class Node{ Node next; int number; public Node getNext() { return next; } p ...

  2. 转:redis-cli 命令总结

    redis-cli常用命令,原文地址:https://maoxian.de/2015/08/1342.html Redis提供了丰富的命令(command)对数据库和各种数据类型进行操作,这些comm ...

  3. NOIP模拟 31

    补坑 skyh又AK 赛时榜搜索我的姓: 下一条 ... 自闭了. (只是表达对B哥强烈的崇敬) (如果B哥介意我把名字贴出来请联系我删掉) T1一打眼,好像就一个gcd 康了眼大样例,觉得没啥问题 ...

  4. margin:0 auto为何会居中?

    margin: 0 auto;为何会居中呢??? 一开始的学习html的时候,就是只知道块级元素margin:0 auto就能居中 但是后来就很好奇 margin: auto 0;为何不能垂直居中? ...

  5. 转载: ubuntu13.04下载android4.0.1源码过程

    转自:http://blog.csdn.net/zhanglongit/article/details/9263009,中间有些不行的地方进行了些小修改. 最初我参考的是老罗的博客http://blo ...

  6. 【转】python之property属性

    1. 什么是property属性 一种用起来像是使用的实例属性一样的特殊属性,可以对应于某个方法 # ############### 定义 ############### class Foo: def ...

  7. JSON《===》JavaBean的相互转换

    1.JSON的作用和好处  在JavaWeb项目中前后端直接的交互,接口之间的对接等等,基本离不开JSON. JSON: 全称JavaScript Object Notation(JavaScript ...

  8. Deepin 下 使用 Rider 开发 .NET Core

    Deepin 下 使用 Rider 开发 .NET Core 国产的 Deepin 不错,安利一下. Deepin 用了也有一两年,也只是玩玩,没用在开发上面.后来 Win10 不太清真了,就想着能不 ...

  9. VS安装

    1. 只更改工作负载和单个组件 工作负载:我只勾选3个需要的 单个组件:  勾选  .NET 下Framework   别的不用改 2.点击安装,安装完成重启

  10. # & 等特殊字符会导致传参失败

    # & 等特殊字符会导致 post 传参失败 处理方法使用 encodeURIComponent 将字符串转化一下 实例 // toUpperCase() 转化为大写字母 var cateco ...