nginx 配置文件详细说明

时间:18-11-07 来源: 作者: 点击:

user www www;
# 修改运行进程的帐号
worker_processes 4;
# 进程数的数量,建议设为CPU的核数或者CPU核数*2
worker_rlimit_nofile 65535;
# 配置worker进程的最大打开文件数
worker_cpu_affinity 0001 0010 0100 1000;
# 优化不同的Nginx进程对应不同的CPU配置,4核2进程数时配置 0101 1010

events {
use epoll
# 设定Nginx工作模式(网络I/O模型)
accept_mutex off
# 设置是否使用连接互斥进行顺序的accept()系统调用
worker_connections 20480
# 设定worker进程连接数上限(受系统进程的最大打开文件数限制 ulimit -HSn 65535)

http {
server_tokens off;
# 参数放置在http标签内,作用是控制http response header内的Web服务版本信息的显示,以及错误信息中Web服务版本信息的显示。
server_names_hash_bucket_size 128;
# 设置存放域名(server names)的最大散列表的存储桶(bucket)的大小,默认值依赖CPU的缓存行
server_names_hash_max_size 512;
# 设置存放域名(server names)的最大散列表大小
sendfile on;
# 激活或禁用sendfile()功能,用于开启文件的高效传输模式
tcp_nopush on;
# 激活或禁用Linux上的TCP_CORK socket选项,作用是减少网络报文段的数量
tcp_nodelay on;
# 提高I/O性能
keepalive_timeout 65;
# 设置客户端连接保持会话的超时时间为60秒,超过这个时间,服务器会关闭该连接
client_header_timeout 15;
# 设置读取客户端请求头数据的超时时间,参考值。默认值是60,防止http协议攻击
client_body_timeout 15;
# 设置读取客户端请求主体的超时时间
send_timeout 25;
# 设置服务器端传送HTTP响应信息到客户端的超时时间,参考值。默认值是60秒
client_max_body_size 8m;
# 设置最大的允许的客户端请求主体大小,在请求头域有"Content-Length",如果超过了此配置值,客户端会收到413错误
server_tokens off;
# 隐藏Nginx版本号

fastcgi_connect_timeout 240;
# 表示Nginx服务器和后端FastCGI服务器连接的超时时间
fastcgi_send_timeout 240;
# 设置Nginx允许FastCGI服务器端返回数据的超时时间
fastcgi_read_timeout 240;
# 设置Nginx从FastCGI服务器端读取响应信息的超时时间
fastcgi_buffer_size 64K;
# 设定用来读取从FastCGI服务器端收到的第一部分响应信息的缓冲区大小,这里的第一部分通常会包含一个小的响应头部。默认情况下,这个参数的大小是由fastcgi_buffers指定的一个缓冲区的大小
fastcgi_buffers 4 64K;
# 设定用来读取从FastCGI服务器端收到的响应信息的缓冲区大小和缓冲区数量,指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答请求,默认值为fastcgi_buffers 8 4k|8k。
fastcgi_busy_buffers_size 128K;
# 设置系统很忙时可以使用的fastcgi_buffers大小,官方推荐的大小为fastcgi_buffers*2
fastcgi_temp_file_write_size 128K;
# FastCGI临时文件的大小,可设置为 128 ~ 256KB

fastcgi_cache spx_nginx;
# 表示开启FastCGI缓存并为其指定一个名称。开启缓存非常有用,可以有效降低CPU的负载,并且防止502错误的发生
#fastcgi_cache_path /data/ngx_fcgi_cache levels=2:2 keys_zone=ngx_fcgi_cache:512m inactive=1d max_size=40g;
# fastcgi_cache缓存目录,keys_zone是这个缓存空间的名字,cache是用多少内存,inactive表示默认失效时间,max_size表示最多用多少硬盘空间。需要注意的是fastcgi_cache缓存是先写在fastcgi_temp_path再移到fastcgi_cache_path中去的,所以这两个目录最好在同一个分区
fastcgi_cache_valid 200 302 1h;
# 用来指定应答代码的缓存时间,实例中的值表示将200和302应答缓存一个小时。
fastcgi_cache_valid 301 1d;
fastcgi_cache_valid any 1m;
fastcgi_cache_min_users 1;
# 设置请求几次之后响应将被缓存,1表示一次即被缓存
fastcgi_cache_use_stale error timeout invalid_header http_500;
# 定义在哪些情况下使用过期缓存
fastcgi_cache_key $request_method://$host$request_uri;fastcgi_cache_key $host$request_uri;
# 定义fastcgi_cache的key,示例中以请求的URI作为缓存的key,Nginx会取这个key的md5作为缓存文件,如果设置了缓存散列目录,Nginx会从后往前取相应的位数做为目录。注意一定要加上$request_method作为cache key,否则如果先请求的为head类型,后面的GET请求返回为空

gzip on;
# 开启gzip压缩功能
gzip_min_length 1k;
# 设置允许压缩的页面最小字节数,页面字节数从header头的Content-Length中获取
gzip_buffers 4 16k;
# 压缩缓冲区大小。表示申请4个单位为16K的内存作为压缩结果流缓存。默认值是申请与原始数据大小相同的内存空间来存储
gzip_http_version 1.1;
# 压缩版本(默认1.1,前端为squid2.5时使用1.0),用于设置识别HTTP协议版本,默认是1.1
gzip_comp_level 2;
# 压缩比率。用来指定gzip压缩比,1压缩比最小,处理速度最快;9压缩比最大,传输速度快,但处理最慢,也比较消耗CPU资源
gzip_types text/plain application/x-javascript text/css application/xml;
# 指定压缩的类型
gzip_vary on;
# vary header支持,该选项可以让前端的缓存服务器缓存经过gzip压缩的页面,例如用Squid缓存经过Nginx压缩的数据
gzip_disable "MSIE [1-6]\.";

proxy_busy_buffers_size 128K;
# 设置系统很忙时可以使用的proxy_buffers大小,官方推荐的大小为proxy_buffers*2
}

server {
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
# 根据文件扩展名判断,设置缓存30天。
expires 30d;
}

location ~ ^/(images|javascript|js|css|flash|media|static)/ {
# 根据目录判断,设置缓存30天。
expires 30d;
}

location ~ .*\.(js|jpg|JPG|jpeg|JPEG|css|bmp|gif|GIF)${
# 某些特定文件的日志,一般不需要记录下来
access_log off;
}
}

声明:本文转载于网络,文章链接:http://www.nd9p.com/12757.html