Nginx 配置文件

# 运行用户
user  nginx;
# 工作进程数, 通常设置成和cpu的数量相等
worker_processes  4;
# PID 文件, 记录当前启动的nginx 的进程ID
pid        /var/run/nginx.pid;

# 全局错误日志
error_log  /var/log/nginx/error.log warn;

# 更改worker 进程的最大打开文件数, 这个值为操作系统限制。使用ulimit -n 命令查看
worker_rlimit_nofile 1024;

# 工作模式及连接数上限
events {
	# 事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; 
	# epoll模型是Linux 2.6以上版本内核中的高性能网络I/O模型, 如果跑在FreeBSD上面, 就用kqueue模型。
	use epoll;
	# 单个后台worker process 进程允许的最大链接数 (最大连接数=连接数*进程数)
	worker_connections  1024;
	# nginx 收到新的连接通知后 接受尽可能多的连接
	multi_accept on;
}

# HTTP 模块 , 控制着nginx http 处理的所有核心特性
http {
    
	# 设置 mine类型(邮件支持类型), 类型由mine.types文件定义
	include       /etc/nginx/mime.types;
	# 设置文件类型, 默认 MIME-type。
	default_type  application/octet-stream;
	# 设置默认编码    
	charset  utf-8;
	
	# #服务器名字的hash表大小
	server_names_hash_bucket_size 128;
	# 客户端请求头部的缓冲区大小, 这个可以根据您的系统分页大小来设置, 一般一个请求头的大小不会超过1k,
	# 不过由于一般系统的分页都要大于1K,所以这里设置为分页大小。
	# 使用 getconf PAGESIZE 命令 获取分页大小 , 如果超过分页的情况 必须是系统分页大小的整倍数。
	client_header_buffer_size 32k;
	# 客户请求头缓冲大小
	large_client_header_buffers 4 32k;
	# 设定通过nginx 上传文件的大小
	client_max_body_size 300m;
	
	# 设置 读取客户端请求正文的缓冲区大小。 默认值 x86和32-bit 为8k , 64-bit 为16k
	client_body_buffer_size  512k; 
	# 与代理服务器建立连接的超时时间. Default: 60s
	proxy_connect_timeout    60; 
	# 连接成功后 从代理服务器读取的响应超时时间 Default: 60s
	proxy_read_timeout       60; 
	# 设置向代理服务器发送请求的超时时间。 Default 60s
	proxy_send_timeout       120; 
	# 从代理服务器读取第一部分应答的缓冲区大小, 
	# 默认情况下 这个值的大小为指令 proxy_buffers 中指定的第一个缓冲区的大小, 可以设置为更小
	proxy_buffer_size        16k; 
	# 从单个连接的代理服务器读取响应的缓冲区的数量和大小   Default: 4k|8k
	proxy_buffers            4 64k; 
	# 限制在响应尚未完全读取时 可能忙于向客户端发送响应的缓冲区的总大小。 Default: 8k|16k
	proxy_busy_buffers_size 128k; 
	# 设置 写入proxy_temp_path时数据的大小, 预防一个工作进程在传递文件时阻塞太长 Default: 8k|16k
	proxy_temp_file_write_size 128k; 


	# 设置日志的输出格式
	log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    # nginx 请求日志
    access_log  /var/log/nginx/access.log  main;
    
	# sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件, 对于普通应用,
	# 必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,
	# 可设置为 off, 以平衡磁盘与网络I/O处理速度, 降低系统的uptime.
    sendfile        on;
	
 
	# 开启或关闭nginx在FreeBSD上使用TCP_NOPUSH套接字选项, 在linux上使用TCP_CORK 套件字选项,
	# 选项仅在使用sendfile 的时候才开启。 
    # tcp_nopush     on;
	# 开启或关闭nginx使用TCP_NODELAY选项的功能,
	# 这个选项仅在将连接转变为长连接的时候才被开启(在upstream发送响应到客户端时也会启用)
	# tcp_nodelay 	 on; 
	
    # 长连接超时时间, 单位秒  
    keepalive_timeout  65;
	
    
    # 启用 gzip 压缩功能   
  gzip on;
  # 默认值是1.1,就是说对HTTP/1.1协议的请求才会进行gzip压缩
  gzip_http_version 1.1;
	# 最小压缩的页面,如果页面过于小,可能会越压越大,这里规定大于1K的页面才启用压缩
  gzip_min_length 1k;
    # 设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流
    gzip_buffers 4 16k;
	# nginx 做前端代理时启用该选项,后端服务器的headers头启用压缩面才启用压
	gzip_proxied expired no-cache no-store private auth;
	# 什么类型的页面或文档启用压缩
	gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript text/x-js;
	# 压缩级别,1压缩比最小处理速度最快,9压缩比最大但处理最慢,同时也最消耗CPU,一般设置为3就可以了
	gzip_comp_level 3;

    # 其它的配置文件存放路径
    include /etc/nginx/conf.d/*.conf;
}    


posted @ 2018-12-18 10:40  _Goku  阅读(232)  评论(0编辑  收藏  举报