链接: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. Splash的使用

    Splash Lua脚本http://localhost:8050 入口及返回值 function main(splash, args) splash:go("http://www.baid ...

  2. 安装实时查看日志工具 log.io

    官网:http://logio.org/ 一.环境 [root@centos ~]# cat /etc/system-release CentOS release 6.5 (Final) [root@ ...

  3. CSPS模拟 95

    T_T flag彻底倒了 虽然打一开始就没觉得能实现过 可是我好桑心T_T skyh那个没素质的还一直bb T_T

  4. 详谈Generator

    Generator究竟有什么样的作用呢???? 他是ES6提出的一个解决异步问题方案 先看一段代码, 感受一下generator函数和普通函数的区别 function* test(){ yield 2 ...

  5. 用css和js实现侧边菜单栏点击和鼠标滑动特效

    1点击效果: 2关键代码: css: #div{ display:inline-block; width:100px; height:150px; border-radius: 5px; blackg ...

  6. python学习之【第三篇】:Python中的字符串及其所具有的方法

    1.前言 字符串str是Python中最常用的数据类型.我们可以使用单引号''或双引号""包裹一段字符来创建字符串. 2.字符串创建 str1 = 'hello world' st ...

  7. What's your name?

    Hello. My name is james. What's your name? Hi, I'm Jessica. Nice to meet you. Nice to meet you, too. ...

  8. PHP读取Excel内的图片

    今天接到了一个从Excel内读取图片的需求,在网上查找了一些资料,基本实现了自己的需求,不过由于查到的一些代码比较久远,不能直接移植到自己的项目里,需要稍加改动一下. 这里介绍一下分别使用phpspr ...

  9. CSS复合选择器是什么?复合选择器是如何工作

    复合选择器介绍 复合选择器其实很好理解,说白了就跟我们生活中的有血缘关系家庭成员一样,通过标签或者class属性或id属性,去找对应的有血缘关系的某个选择器,具体的大家往下看哦. 如果是初学者对基本的 ...

  10. vue项目iframe的传值问题

    前言 项目需要,我需要引入一个已经封装好的浏览器插件.插件只能以html的方式调用, 所以.我把插件的使用封装了一个html页面.vue项目则利用iframe的方式引入. 到这里我就遇到了一个问题,那 ...