链接: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. 第七章 文件与I/O(4)

    文件共享 打开文件内核数据结构 一个进程两次打开同一个文件 一个进程能打开1024个文件描述符,没打开一个文件,内核会生成一个文件表,文件表中的v节点指针指向v节点表,v节点部分信息就是stat函数返 ...

  2. 学习笔记01HTML

    1.五大浏览器:IE,FireFox,Chrome,Opera,Safari(Apple)所有浏览器都是这五大浏览器中作为核心引擎的.Trident(引擎):就是IE浏览器的WebBrowser控制. ...

  3. [2018-10-29] python开发个人资源共享网--第二天

    创建Django目录 startproject my_project 创建APP startapp my_app 手动创建的文件夹 log 日志 media 用户上传下载 static 静态文件 配置 ...

  4. [考试反思]1107csp-s模拟测试104: 速度

    20分钟能做什么? 不粘排行榜,没意义,第一机房集体重启,我侥幸找回了两个文件才有分. 实际得分应该是70+100+60,第二机房rank1...放在第一机房就不知道了 T1:中间值 比较喜欢题解的第 ...

  5. NOIP模拟测试12

    T1 斐波那契 一道找规律题,被我做成了贼难的题. 观察图片可知x=f[i-1]+j.(j为x的父亲)且j<=f[i-1],然后就二分找父亲没了. #include<bits/stdc++ ...

  6. 卡特兰数&&prufer序列&&BSGS水题集

    首先说一下BSGS的一个坑点: 解方程A^x≡B(mod p) 需要特判一个东西=>A%p==B%p==0? 如果相等的话puts("1")反之则无解. 因为如果A%p=0, ...

  7. 【Java实践】Kettle从一次实验说起

    一,安装Kettle 1,关于简易安装Kettle 第一次接触kettle(以前只是听过罢了),摸索了几天,在mac源码安装失败,转而快速安装.在mac上安装最新版kettle并成功启动代码如下: ☁ ...

  8. 揭秘——TCP的三次握手和四次挥手

    1.前言 本文以博主在某次前端面试中被问到"什么是TCP协议中的三次握手和四次挥手?"为契机,经过整理教材.百度百科以及他人博客,再结合博主自身的理解,尽可能的以通俗易懂的语言来解 ...

  9. GO 基础学习笔记(1) | 简介

    一.官网查看系列 Golang官网:https://golang.org/ Golang中文网:https://studygolang.com/(推荐) 项目学习网站: https://gowalke ...

  10. 什么是ping通

    ping这个命令是用来检测你的电脑和你所输入的IP地址127.0.01是否有数据通讯,以判断网络通不通的问题,执行这个命令也很简单,在开始——运行,输入ping 127.0.01,上面会出现一些数据, ...