1.全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。

worker_processes 6;    //worker进程数(一般设为CPU核数)
worker_cpu_affinity 000001 000010 000100 001000 010000 100000;    //每个worker进程对应的CPU(每一位代表一个核,位值为1代表开启,为0代表关闭)
worker_rlimit_nofile 50000;     //设置worker进程的最大打开文件数

2.events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。

use epoll;    //使用epoll的I/O模型。(分为标准事件模型(Select、poll)和高效事件模型(Kqueue、Epoll、/dev/poll、/dev/poll))
worker_connections 50000; //工作进程的最大连接数量(理论上每台nginx服务器的最大连接数为worker_processes*worker_connections)

3.http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。

  server块:配置虚拟主机的相关参数,一个http中可以有多个server。

  location块:配置请求的路由,以及各种页面的处理情况,一个server中可以有多个location。

include       mime.types;
default_type application/octet-stream;

关于mime type,HTTP request里面有一个头叫 Accept,列出浏览器可以接受的mime type,HTTP response 的Content-Type 的值 在Accept 里面。我的理解是Nginx 会根据请求的文件的扩展名来决定返回什么 Content-Type,除非后端Web程序手动设置了Content-Type,如果Web程序没设置,Nginx也没找到对应文件的扩展名的话,就使用默认的Type,这个在Nginx 里用 default_type定义,比如 default_type  application/octet-stream。mime type 和 文件扩展名的对应关系一般放在 mime.types 里,然后 用 include mime.types; 加载

underscores_in_headers on; 
#该属性默认为off,表示如果header name中包含下划线,则忽略掉(后端服务器就获取不到带_的参数了)。
sendfile on;

tcp_nopush on;

sendfile: 设置为on表示启动高效传输文件的模式。sendfile可以让Nginx在传输文件时直接在磁盘和tcp socket之间传输数据。如果这个参数不开启,会先在用户空间(Nginx进程空间)申请一个buffer,用read函数把数据从磁盘读到cache,再从cache读取到用户空间的buffer,再用write函数把数据从用户空间的buffer写入到内核的buffer,最后到tcp socket。开启这个参数后可以让数据不用经过用户buffer。

在 nginx 中,tcp_nopush 配置和 tcp_nodelay "互斥"。它可以配置一次发送数据的包大小。也就是说,它不是按时间累计 0.2 秒后发送包,而是当包累计到一定大小后就发送。必须和 sendfile 搭配使用。

# 日志格式

log_format main '$time_iso8601 $status $connection $connection_requests $remote_addr $http_x_forwarded_for $remote_user $request_length $request_time $request_method $server_protocol $http_host $server_port $uri $args $http_referer $body_bytes_sent $http_user_agent $ssl_protocol $ssl_cipher $upstream_addr $upstream_status $upstream_response_time $upstream_cache_status';

log_format time '$remote_addr $time_local $request_time $http_host $request $status';
# 处理时间,如果有文件上传业务,需要设置长一点。
keepalive_timeout 5;
# 用户请求头的超时时间
client_header_timeout 1m; # 用户请求体的超时时间
client_body_timeout 1m;
# 用户请求体最大字节数
client_max_body_size 10m; fastcgi_connect_timeout 60;
fastcgi_send_timeout 60;
fastcgi_read_timeout 60; #这个不能大小 太小会常出502错误
fastcgi_buffer_size 256k;
fastcgi_buffers 8 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
# fastcgi_temp_path /dev/shm;
# fastcgi_intercept_errors on; #多长时间检查一次缓存的有效信息
open_file_cache_min_uses 1;
open_file_cache_valid 30s; #缓存配置
proxy_temp_path /data/nginx/temp_dir;
proxy_cache_path /dev/shm/nginx_cache levels=1:2 keys_zone=cache_one:50m inactive=12d max_size=7g;
proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504 http_404 ; #gzip相关配置
gzip on;
gzip_min_length 4k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml application/json;
gzip_vary on; #添加if_modified_since规则
if_modified_since before; limit_req_zone $binary_remote_addr zone=perip_req:1m rate=5r/s; #导入其他配置文件,这里可以针对不同业务场景配置不同server
include vhosts/*.com;
include vhosts/*.conf;
include vhosts/*.cn; #隐藏nginx版本信息
server_tokens off; #禁用空主机头访问
server {
  listen 80 default;
  return 403;
}

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

  1. Nginx 常用配置整理

    #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日志定义类型,[ debug | ...

  2. 【第六课】Nginx常用配置下详解

    目录 Nginx常用配置下详解 1.Nginx虚拟主机 2.部署wordpress开源博客 3.部署discuz开源论坛 4.域名重定向 5.Nginx用户认证 6.Nginx访问日志配置 7.Ngi ...

  3. 轻量级HTTP服务器Nginx(常用配置实例)

    轻量级HTTP服务器Nginx(常用配置实例)   文章来源于南非蚂蚁   Nginx作为一个HTTP服务器,在功能实现方面和性能方面都表现得非常卓越,完全可以与Apache相媲美,几乎可以实现Apa ...

  4. SSH(struts+spring+hibernate)常用配置整理

    SSH(struts+spring+hibernate)常用配置整理 web.xml配置 <?xml version="1.0" encoding="UTF-8&q ...

  5. Nginx常用配置实例(4)

    Nginx作为一个HTTP服务器,在功能实现方面和性能方面都表现得非常卓越,完全可以与Apache相媲美,几乎可以实现Apache的所有功能,下面就介绍一些Nginx常用的配置实例,具体包含虚拟主机配 ...

  6. nginx常用配置

    nginx.conf配置文件详解 其主要分为几个模块 全局快 从开始到events块之间的一部分内容,其作用域为全局作用域 events块 主要负责Nginx服务器与用户的网络连接 常用设置: 是否开 ...

  7. nginx常用配置2

    ## 一.Nginx中虚拟主机配置 ### 1.基于域名的虚拟主机配置 1.修改宿主机的hosts文件(系统盘/windows/system32/driver/etc/HOSTS) ​ linux : ...

  8. Nginx 常用配置方式说明

    原文内容来自于LZ(楼主)的印象笔记,如出现排版异常或图片丢失等问题,可查看当前链接:https://app.yinxiang.com/shard/s17/nl/19391737/7619763f-1 ...

  9. 第十章 nginx常用配置介绍

    一.虚拟主机 1.配置方式 #虚拟主机配置方式:1.基于多IP的方式2.基于多端口的方式3.基于多域名的方式 2.方式一:基于多IP的方式 1.第一个配置文件[root@web02 /etc/ngin ...

随机推荐

  1. [TCO2013]DirectionBoard

    题意:给一个网格,每个格子有一个方向表示在这个格子上要往哪个方向走,你可以改变某些格子的方向,问最少多少次操作使得从任意格子出发都能回到这个格子 woc这都不会我还是回家种田去吧... 题目的要求是改 ...

  2. 【计算几何】【圆反演】计蒜客17314 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 G. Finding the Radius for an Inserted Circle

    题意:给你三个半径相同的圆,它们切在一起,然后让你往缝里一个一个地塞圆,问你塞到第k个的半径是多少. 就把上面那两个圆的切点当成反演中心,然后会反演成这个样子,两个平行直线和一个圆. 然后就是往那个圆 ...

  3. 【2-SAT(最小字典序/暴力染色)】HDU1814-Peaceful Commission

    [题目大意] 和平委员会每个党派有2个人,只能派出其中1个,其中有一些人之间互相讨厌不能同时派出.求出派遣方案,如果有多种方案输出字典序最小的方案. [思路] 最小字典序只能用暴力染色.初始时均没有染 ...

  4. Java编程思想学习(三)----第三章:操作符

    3.2使用Java操作符 操作符接受一个或多个参数,并生成一个新值. 操作符作用于操作数,生成一个新值.有些操作符可以改变操作数自身的值.几乎所以的操作符都只能操作“基本类型”.例外的操作符有“=”, ...

  5. 源码安装redis初始化实例脚本

    #!/bin/bash - #Date: -- #Auth: Jin version='2.8.7' progname='redis' pkgname="${progname}-${vers ...

  6. file结构体中private_data指针的疑惑

    转:http://www.360doc.com/content/12/0506/19/1299815_209093142.shtml hi all and barry, 最近在学习字符设备驱动,不太明 ...

  7. MySQL 的instr函数

    1.测试数据库: MYSQL数据库 INSTR(STR,SUBSTR) 在一个字符串(STR)中搜索指定的字符(SUBSTR),返回发现指定的字符的位置(INDEX); STR 被搜索的字符串 SUB ...

  8. if __name__=='__main__"在有的virtualenvs环境下执行成功,在有的环境下执行失败?

    我的项目是erebus,所以默认的python解释器位于virtualenvs下的erebus,但是这个执行环境执行某个py文件总是失败,换其他的执行器执行反而没有问题: 排查了半天,才发现erebu ...

  9. iOS:quartz2D绘图小项目(涂鸦画板)

    介绍:学了quartz2D的绘图知识后,我根据它的一些功能制作了一个小项目:涂鸦画板. 功能:绘制各种图形,还可以选取相册上的照片做涂鸦,然后保存到相册中.其中,还包括功能有:颜色的选取.线宽的选取. ...

  10. 跟着我从零开始入门FPGA(一周入门XXOO系列)-1、Verilog语法

    (本连载共七部分,这是第一部分) 作者:McuPlayer2013   (EETOP FPGA版块版主) 原帖地址:http://bbs.eetop.cn/thread-385362-1-1.html ...