码迷,mamicode.com
首页 > 其他好文 > 详细

nginx.conf配置文件

时间:2015-05-06 18:20:54      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:nginx.conf配置文件

1、nginx.conf文件:

user  username #指定允许ninx的用户名

worker_processes  11; #一般为物理核心数-1,

worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000; #绑定nginx允许的CPU核心

error_log   /var/log/nginx/error1.log;  #nginx错误日志的保存路径

pid /path/to/pidfile_name; 指定pid文件的路径,编译的时候可以指定,边以后也可以在配置文件重新指定,是必备的指令

worker_rlimit_nofile #指定一个worker进程所能够打开的最大文件句柄数;

worker_rlimit_sigpending #;设定每个用户能够发往worker进程的信号的数量;

events { 

  worker_connections 2048;  #每个woker进程能打开的最大连接数

    multi_accept on;    #是否允许一次性地响应多个用户请求

    use epoll;   #定义使用的事件模型,建议让nginx自动选择;

用于调试、定位问题:只调试nginx时候使用

1daemon[on|off]

默认为on,调试时要设置为off,使得所有信息直接输出到调试台。

2master_processon|off

默认就是on,调试时可以将master关闭只启动一个worker,方便定位问题。即以woker模式运行nginx

3error_log/path/to/error_log level;

错误日志文件及其级别;默认为error级别;调试时可以使用debug级别,但要求在编译时必须使用--with-debug启用debug功能;

server_tokens off;  #隐藏错误页面的nginx版本信息

keepalive_timeout time;  保持连接的超时时长;默认为75秒;

keepalive_requests n;  在一次长连接上允许承载的最大请求数;

keepalive_disable [msie6 | safari | none ] 对指定的浏览器禁止使用长连接;

tcp_nodelay on|off #发送响应的超时时长

client_header_timeout time;  #即读取http请求首部的超时时长,默认60秒,对链路不好的情况可以调小一点

client_body_timeout time; #读取http请求包体的超时时长默认60秒,对链路不好的情况可以调小一点

send_timeout time;  # 发送给用户但是用户接收的超时时长,发送响应的超时时长


对客户端请求的限制:

limit_exceptmethod ...

允许使用除了写在这里的以外的方法,即写在里面的不能用

指定对范围之外的其它方法的访问控制;

 

limit_exceptGET {

allow172.16.0.0/16;

denyall;

}

2client_max_body_sizeSIZE;

http请求包体的最大值;常用于限定客户所能够请求的最大包体;根据请求首部中的Content-Length来检测,以避免无用的传输;

 

3limit_ratespeed;

限制客户端每秒钟传输字节的字节数;默认为0,表示没有限制;

 

4limit_rate_aftertime;

nginx向客户发送响应报文时,如果时长超出了此处指定的时长,则后续的发送过程开始限速;


文件操作的优化:

1sendfileon|off

是否启用sendfile功能;

 

2aio on|off

是否启用aio功能;

 

3open_file_cachemax=N [inactive=time]|off

是否打开文件缓存功能;

max: 缓存条目的最大值;当满了以后将根据LRU算法进行置换;

inactive:某缓存条目在指定时长时没有被访问过时,将自动被删除;默认为60s;

 

缓存的信息包括:

文件句柄、文件大小和上次修改时间;

已经打开的目录结构;

没有找到或没有访问权限的信息;

 

4open_file_cache_errorson|off

是否缓存文件找不到或没有权限访问等相关信息;

 

5open_file_cache_validtime;

多长时间检查一次缓存中的条目是否超出非活动时长,默认为60s;

 

6open_file_cache_min_use#;

inactive指定的时长内被访问超此处指定的次数地,才不会被删除;

 

对客户端请求的特殊处理:

1ignore_invalid_headerson|off

是否忽略不合法的http首部;默认为on; off意味着请求首部中出现不合规的首部将拒绝响应;只能用于serverhttp;

 

2log_not_foundon|off

是否将文件找不到的信息也记录进错误日志中;

 

3resolveraddress;

指定nginx使用的dns服务器地址;

 

4resover_timeouttime;

指定DNS解析超时时长,默认为30s;

 

5server_tokenson|off;

是否在错误页面中显示nginx的版本号;

 

内存及磁盘资源分配:

1client_body_in_file_onlyon|clean|off

HTTP的包体是否存储在磁盘文件中;off表示不存储,非off表示都存储,即使包体大小为0也会创建一个磁盘文件;on表示请求结束后包体文件不会被删除,clean表示会被删除;

 

2client_body_in_single_bufferon|off;

HTTP的包体是否存储在内存buffer当中;默认为off

 

3cleint_body_buffer_sizesize; #默认为8k

nginx接收HTTP包体的内存缓冲区大小;

 

4client_body_temp_pathdir-path [level1 [level2 [level3]]]; #是个目录文件夹,可以是多级目录,多级目录可以防止一个目录下文件过多而导致检索变慢

HTTP包体存放的临时目录;

client_body_temp_path/var/tmp/client/  1 2

1 116进制的1级子目录,即1x16等于1616进制的1级子目录

2 216进制的2级子目录,即16x16等于25616进制的二级子目录

5client_header_buffer_sizesize;

正常情况下接收用户请求的http报文header部分时分配的buffer大小;默认为1k;

 

6large_client_header_buffersnumber size;

存储超大Http请求首部的内存buffer大小及个数;

 

7connection_pool_sizesize;

nginx对于每个建立成功的tcp连接都会预先分配一个内存池,此处即用于设定此内存池的初始大小;默认为256

 

8request_pool_sizesize;

nginx在处理每个http请求时会预先分配一个内存池,此处即用于设定此内存池的初始大小;默认为4k;


文件传输及压缩:

include /etc/nginx/mime.types; 在当前文件中包含另一个文件的内容,可以/opt/nginx.d/*.conf

default_type text/html;  设置文件使用的默认的MIME-type。

charset UTF-8; 设置头文件中的默认的字符集

gzip on; 告诉nginx采用gzip压缩的形式发送数据,这将会减少我们发送的数据量。

gzip_disable "msie6"; 为指定的客户端禁用gzip功能

# gzip_static on; gzip_static 告诉nginx在压缩资源之前,先查找是否有预先gzip处理过的资源,从而允许你使用最高压缩比,这样nginx就不用再压缩这些文件了

gzip_proxied any 许或者禁止压缩基于请求和响应的响应流。我们设置为any,意味着将会压缩所有的请求.

gzip_min_length 1000;设置对数据启用压缩的最少字节数。如果一个请求小于1000字节,我们最好不要压缩它,因为压缩这些小的数据会降低处理此请求的所有进程的速度。

gzip_comp_level 4;设置数据的压缩等级。这个等级可以是1-9之间的任意数值,9是最慢但是压缩比最大的。我们设置为4,这是一个比较折中的设置。

gzip_types text/plain text/css application/json application/x avascript text/xml application/xml application/xml+rss text/javascript;  设置需要压缩的数据格式。


举例设置nginx:

user www-data;        

pid /var/run/nginx.pid;        

worker_processes auto;        

worker_rlimit_nofile 100000;        

events {        

worker_connections 2048;        

multi_accept on;        

use epoll;        

}         

http {        

server_tokens off;        

sendfile on;        

tcp_nopush on;        

tcp_nodelay on;        

access_log off;        

error_log /var/log/nginx/error.log crit;       

keepalive_timeout 10;        

client_header_timeout 10;        

client_body_timeout 10;        

reset_timedout_connection on;        

send_timeout 10;        

limit_conn_zone $binary_remote_addr zone=addr:5m;       

limit_conn addr 100;       

include /etc/nginx/mime.types;        

default_type text/html;        

charset UTF-8;        

gzip on;        

gzip_disable "msie6";        

gzip_proxied any;        

gzip_min_length 1000;        

gzip_comp_level 6;        

gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; 

open_file_cache max=100000 inactive=20s;       

open_file_cache_valid 30s;        

open_file_cache_min_uses 2;        

open_file_cache_errors on;        

include /etc/nginx/conf.d/*.conf;        

include /etc/nginx/sites-enabled/*;        

}         


本文出自 “Linux” 博客,请务必保留此出处http://zhangshijie.blog.51cto.com/806066/1642553

nginx.conf配置文件

标签:nginx.conf配置文件

原文地址:http://zhangshijie.blog.51cto.com/806066/1642553

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!