链接: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. CTR@模型整体架构

    1. 推荐系统 1.1 总体框架 主要包括:样本选择.数据清洗.特征提取与选择.模型训练.在线预估和排序. 1.2 目的 帮助用户找到想要的商品,挖掘数据分布. 降低信息过载. 提高站点的点击率/转化 ...

  2. MongoDB自建和阿里云RDS备份还原

    MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功 ...

  3. 工厂模式(C++)

    转载来源:https://www.runoob.com/design-pattern/ 工厂模式 创建型模式,它提供了一种创建对象的最佳方式. 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑, ...

  4. 《Effective Java》 读书笔记(二) 在构造参数过多的时候优先考虑使用构造器

    刚开始看见这个标题的时候,我想到了python可以选择初始化参数的语法,C++.C#能有默认参数. 为什么Java什么都没有~~ 好吧,我们是使用构造器来实现它. 1.当一个类的构造函数需要很多构造函 ...

  5. 学习笔记24_MVC前后台数据交互

    *最普通的交互方式,在Contoller中的Action方法内 public ActionResult Index() { ViewData["Key"] =Value; Retu ...

  6. Spring Boot 2.X(十七):应用监控之 Spring Boot Admin 使用及配置

    Admin 简介 Spring Boot Admin 是 Spring Boot 应用程序运行状态监控和管理的后台界面.最新UI使用vue.js重写里. Spring Boot Admin 为已注册的 ...

  7. Chrome DevTools调试微信X5内核页面

    起因:公司最近在做一个双十一的H5宣传页面,大概需求就是模拟微信视频来电,接通视频后弹出某某明星的视频巴拉巴拉@#%!!!~.看到需求我的第一反应是So easy,正当我码代码码的开心的时候,难题他来 ...

  8. vue 单页面应用 app自适应方案

    本文是使用淘宝的方案进行布局开发的,遇到的问题是会对app内使用的第三方插件,当页面进行缩放后,比如高德地图中的文字会显得过小,我使用的方法就是手动的动每一个尺寸进行手动的px 到 rem的替换,而不 ...

  9. nginx recv() failed (104: Connection reset by peer) while reading response header from upstream解决方法

    首先说下 先看 按照ab 每秒请求的结果 看看 都有每秒能请求几个 如果并发量超出你请求的个数 会这样 所以一般图片和代码服务器最好分开 还有看看io瓶ding 和有没有延迟的PHP代码执行 0 先修 ...

  10. php [poolwww] seemsbusy (youmayneedto increasepm.start_servers, or pm.min/max_spare_servers)错误解决方法

    php [poolwww] seemsbusy (youmayneedto increasepm.start_servers, or pm.min/max_spare_servers)错误解决方法修改 ...