孤独海岸线 发表于 2018-11-13 12:05:47

Nginx基础入门之nginx.conf配置项相关介绍

#usernobody;  
user nginx ;   //指定nginx服务的运行账号
  
worker_processesauto;    //指定nginx work进程的运行数,不一般与cpu的核心相等,也可以设置auto自动识别
  
worker_rlimit_nofile 65535;//一个nginx进程打开的最多文件描述符数目,此数字最好与系统(ulimit -n)相等
  
#worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000; //绑定work进程到指定的cpu上
  
#error_loglogs/error.loginfo; //定义全局错误日志定义类型
  

  
#pid      logs/nginx.pid;//设置nginx pid文件的路径
  

  

  
events {
  
    use epoll;   //定义nginx使用的工作模式
  
    worker_connections65535;    //定义nginx单个work进程的最大连接数
  
   multi_accept on;   //开启nginx批量建立新连接设置
  
}
  

  

  
http {
  
    include       mime.types;
  
    include       /etc/nginx/extra/jkl.conf;//引用第三方web配置
  
    default_typeapplication/octet-stream;
  

  
    //定义nginx访问日志格式
  
    log_formatmain'$remote_addr - $remote_user [$time_local] "$request" '
  
                      '$status $body_bytes_sent "$http_referer" '
  
                      '"$http_user_agent" "$http_x_forwarded_for"';
  
      #access_loglogs/access.logmain;//定义nginx日志的访问记录类型
  

  

  
      charsetutf-8;      //定义字符编码
  
      server_names_hash_bucket_size 128;//服务器名字的hash表大小
  
      client_header_buffer_size 1M;    // 客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求头的大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。 分页大小可以用命令getconf PAGESIZE 取得。 但也有client_header_buffer_size超过4k的情况,但是client_header_buffer_size该值必须设置为“系统分页大小”的整倍数。
  

  
#       client_body_timeout 15; //设置客户端主体超时时间,如果客户端超过这个时间还没有请求数据,nginx将会返回408错误
  

  
#       client_header_timeout 15; ////设置客户端头部超时时间,如果客户端超过这个时间还没有请求数据,nginx将会返回408错误
  
#       send_timeout 15;    //指定响应客户端超时时间,如果在该时间之内客户端还没有活动,nginx将会主动关闭该连接
  

  
      large_client_header_buffers 4 128k;   //设置的缓存区
  
      client_max_body_size 2000m; //设置上传文件的最大值
  

  
      sendfile on;   //开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
  

  
      tcp_nopush on;//防止网络阻塞
  
      tcp_nodelay on; //防止网络阻塞
  
      keepalive_timeout 60;//长连接超时时间,单位是秒
  
      reset_timedout_connection on;//开启超时连接服用功能
  

  

  
      fastcgi_cache_path /var/tmp/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m                        inactive=5mmax_size=10g;//定义缓存存放的路径及存储区域总大小
  

  
      fastcgi_connect_timeout 90;//定义nginx与后端fastcgi连接超时时间
  
      fastcgi_send_timeout 60;      //定义nginx向后端请求超时时间(指两次握手后向fastcgi传送请求超时时间)
  
      fastcgi_read_timeout 60;//定义nginx响应后端响应的超时时间(指两次握手后接受fastcgi响应请求的超时时间)
  

  
      fastcgi_buffer_size 64k; //指定读取fastcgi应答第一部分需要用多大的缓冲区,这个值表示将使用一个64kb的缓冲区响应第一部分应答(应答头)
  

  
      fastcgi_buffers 8 128k; //指本地需要用多大的缓冲区缓冲fastcgi的应答请求,如果一个php脚本所产生的页面大小为256kb,那么会分配4个64kb缓冲区来缓存,如果页面大于256kb,那么大于256kb的部分会缓存到fastcgi_temp指定的路径中,但是因为内存中数据处理远快于磁盘,所以这个值应该为站点中php所产生的页面大小的中间值,如果站点大部分php脚本产生的页面为256kb,那么可以设置成"8 16k4 64k"
  

  
      fastcgi_busy_buffers_size 256k;//建议设置为fastcgi——buffer的两倍,
  

  
      fastcgi_temp_file_write_size 256k; //在写入fastcgi_temp_path时用到多大缓存值,默认为fastcgi_buffers的两倍,设置值若过小会导致nginx报502错误
  

  
#       fastcgi_temp_path/usr/local/nginx/ngx_fastcgi_tmp//fastcgi临时文件存放路径
  

  
      fastcgi_cache oldboy_nginx; //开启fastcgi缓存并为其指定一个名称(根据需要来选择)
  
      fastcgi_cache_valid 200 302 1h; //对于200 ,302应答缓存1小时
  
      fastcgi_cache_valid any 1m;   //对于其他应答缓存1分钟
  
      fastcgi_cache_min_uses 1;   //缓存最小使用次数
  
      fastcgi_cache_key "$request_method://$host$request_uri"; //获取URL值算出一个key进行缓存id
  

  

  

  

  
      open_file_cache max=204800 inactive=20s; //这个将为打开文件指定缓存,默认是没有启用的,max 指定缓存数量,建议和打开文件数一致,inactive 是指经过多长时间文件没被请求后删除缓存。
  

  
      open_file_cache_valid 30s;//这个是指多长时间检查一次缓存的有效信息。
  

  
      open_file_cache_min_uses 2; //open_file_cache 指令中的inactive 参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive 时间内一次没被使用,它将被移除。
  

  
#      open_file_cache_errors on;   //是否打开记录文件错误信息
  

  

  

  
      gzip on;               //开启gzip压缩输出
  
#      gzip_disable "msie6";   //使用正则表达式来指定某些不需要gzip压缩的浏览器(将和User-Agents进行匹配)。依赖于PCRE库。在0.6.23版本中首次使用0.7.63版本以后,你可以为IE5.5和IE6 SP1使用msie6参数来禁止gzip压缩。
  

  
      gzip_vary on;      //开启对varyheader 支持;
  
      gzip_proxied any;    //对所有请求都启用压缩功能
  
      gzip_comp_level 6;   //压缩等级
  
      gzip_min_length 1k;//最小压缩文件大小
  
      gzip_buffers 16 8k;   //指定缓存压缩应答的缓冲区数量和大小,如果不设置,一个缓存区的大小为分页大小,根据环境的不同可能是4k或8k。
  

  
      gzip_http_version 1.1;   //压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
  
      gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;    //压缩类型,默认就已经包含text/html,所以下面就不用再写了,写上去也不会有问题。
  

  

  

  

  
    #access_loglogs/access.logmain;
  

  
#    sendfile      on;
  
    #tcp_nopush   on;
  

  
    #keepalive_timeout0;
  
#    keepalive_timeout65;
  

  
    #gzipon;
  

  
#    server {
  
#      listen       80;
  
#      server_namelocalhost;
  

  
      #charset koi8-r;
  

  
      #access_loglogs/host.access.logmain;
  

  
#      location / {
  
#            root   html;
  
#            indexindex.html index.htm;
  
#      }
  

  
      #error_page404            /404.html;
  

  
      # redirect server error pages to the static page /50x.html
  
      #
  
#      error_page   500 502 503 504/50x.html;
  
#      location = /50x.html {
  
#            root   html;
  
#      }
  

  
      # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  
      #
  
      #location ~ \.php$ {
  
      #    proxy_pass   http://127.0.0.1;
  
      #}
  

  
      # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  
      #
  
      #location ~ \.php$ {
  
      #    root         html;
  
      #    fastcgi_pass   127.0.0.1:9000;
  
      #    fastcgi_indexindex.php;
  
      #    fastcgi_paramSCRIPT_FILENAME/scripts$fastcgi_script_name;
  
      #    include      fastcgi_params;
  
      #}
  

  
      # deny access to .htaccess files, if Apache's document root
  
      # concurs with nginx's one
  
      #
  
      #location ~ /\.ht {
  
      #    denyall;
  
      #}
  
#    }
  

  

  
    # another virtual host using mix of IP-, name-, and port-based configuration
  
    #
  
    #server {
  
    #    listen       8000;
  
    #    listen       somename:8080;
  
    #    server_namesomenamealiasanother.alias;
  

  
    #    location / {
  
    #      root   html;
  
    #      indexindex.html index.htm;
  
    #    }
  
    #}
  

  

  
    # HTTPS server
  
    #
  
    #server {
  
    #    listen       443 ssl;
  
    #    server_namelocalhost;
  

  
    #    ssl_certificate      cert.pem;
  
    #    ssl_certificate_keycert.key;
  

  
    #    ssl_session_cache    shared:SSL:1m;
  
    #    ssl_session_timeout5m;
  

  
    #    ssl_ciphersHIGH:!aNULL:!MD5;
  
    #    ssl_prefer_server_cipherson;
  

  
    #    location / {
  
    #      root   html;
  
    #      indexindex.html index.htm;
  
    #    }
  
    #}
  

  
}


页: [1]
查看完整版本: Nginx基础入门之nginx.conf配置项相关介绍