zoukankan      html  css  js  c++  java
  • Nginx配置文件解析

    user  nginx;
    
    worker_processes  auto; #nginx开启的进程数
    worker_cpu_affinity  auto; #自动为每个进程绑定CPU
    worker_rlimit_nofile    65536;  #每个进程最大打开文件数
    
    pid    /var/run/nginx.pid;    #PID文件存放路径
    
    events
    {
    use    epoll;                   
    worker_connections    65536;   #每个进程最大连接数
    }
    
    http
    {
    include    mime.types;   #文件扩展名与文件类型映射表
    default_type    application/octet-stream; #默认文件类型
    charset  utf-8;  #默认编码
    
    server_names_hash_bucket_size 128;  #服务器名字的hash表大小
    client_header_buffer_size 4k;         #设置缓冲区大小
    large_client_header_buffers 4 32k;  #设置缓冲区最大限制
    client_max_body_size 8m;     #上传文件大小限制
    
    #该响应头设置禁用浏览器对 Content-Type 类型进行猜测的行为。因为很多情况下服务器并没有很好的配置 Content-Type 类型,因此浏览器会根据文档的数据特征来确定类型,比如攻击者可以让原本解析为图片的请求被解析为 JavaScript。我们发现以上三个比较常见的防攻击配置,还是非常实用的,建议使用,之前我们的服务器只使用了 add_header X-Frame-Options "SAMEORIGIN"; 配置。
        add_header    X-Content-Type-Options nosniff;
        
        #X-Frame-Options 响应头是用来给浏览器指示允许一个页面可否在 <frame>, <iframe> 或者 <object> 中展现的标记。网站可以使用此功能,来确保自己网站的内容没有被嵌到别人的网站中去,也从而避免了点击劫持 (clickjacking) 的攻击。 
        add_header    X-Frame-Options SAMEORIGIN;
        
        #XSS 是跨站脚本攻击,是比较常见的网络攻击手段,改字段指示浏览器是否为当前页面开启浏览器内建的 XSS 过滤机制。 1 表示允许过滤器,mode=block 指示浏览器在检测到 XSS 攻击后禁止加载整个页面。   
        add_header    X-XSS-Protection "1; mode=block";    
    
    open_file_cache max=65536 inactive=20s;  #打开文件最大缓存数量,inactive指经过20s后文件没被请求后删除缓存
    open_file_cache_valid 30s;   #间隔30s检查一次缓存信息
        open_file_cache_min_uses 1; #open_file_cache指令中的inactive参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的
    
    sendfile on;  #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为on。如进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
    
    tcp_nopush on;  #数据包最大时,一次传输
    keepalive_timeout 60; #长连接超时时间
    tcp_nodelay on;  #禁用nagle算法,不缓存数据
    server_tokens off; #隐藏nginx版本号
    port_in_redirect off; #302跳转时不添加端口号
    
       #指定连接到后端FastCGI的超时时间
        fastcgi_connect_timeout 300;
    
        #向FastCGI传送请求的超时时间,这个值是指已经完成两次握手后向FastCGI传送请求的超时时间
        fastcgi_send_timeout 300;
    
        #接收FastCGI应答的超时时间,这个值是指已经完成两次握手后接收FastCGI应答的超时时间
        fastcgi_read_timeout 300;
    
    #指定读取FastCGI应答第一部分需要用多大的缓冲区,这里可以设置为fastcgi_buffers指令指定的缓冲区大小,上面的指令指定它将使用1 个64k的缓冲区去读取应答的第一部分,即应答头,其实这个应答头一般情况下都很小(不会超过1k),但是你如果在fastcgi_buffers指令中 指定了缓冲区的大小,那么它也会分配一个fastcgi_buffers指定的缓冲区大小去缓存
        fastcgi_buffer_size 64k;
    
    #指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答,即4个64k的缓冲区缓存,超过256k部分会缓存到fastcgi_temp指定的路径中
        fastcgi_buffers 4 64k;
        #高负荷下缓冲大小(fastcgi_buffers*2)
        fastcgi_busy_buffers_size 128k;
    
        #在写入fastcgi_temp_path时将用多大的数据块,默认值是fastcgi_buffers的两倍
        fastcgi_temp_file_write_size 128k;
    
    #open gzip  
    gzip on; #开启gzip压缩
    gzip_vary on;  #通知客户端使用了gzip压缩
    gzip_min_length    1k; #最小压缩文件大小
    gzip_buffers 4 16k; #压缩缓冲区
    gzip_http_version 1.0;
    gzip_comp_level    2;  #压缩等级
    gzip_types    text/plain text/javascript application/x-javascript text/css application/xml image/jpeg image/png image/gif image/bmp;
        #压缩类型,默认就已经包含text/html,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn
    
    gzip_disable "MSIE [1-6].(?!.*SV1)"; #IE6前的版本不启用压缩
    
    #Proxy
    proxy_connect_timeout    600;  #nginx跟后端服务器连接超时时间(代理连接超时)
    proxy_read_timeout    600; #连接成功后,后端服务器响应时间(代理接收超时)
    proxy_send_timeout    600; #后端服务器数据回传时间(代理发送超时)
    proxy_buffer_size    16k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
    proxy_buffers    4    32k; #proxy_buffers缓冲区,网页平均在32k以下的设置
    proxy_busy_buffers_size    64k; #高负荷下缓冲大小(proxy_buffers*2)
    proxy_temp_file_write_size    64k;  #在写入proxy_temp_path时将用多大的数据块
    
    
    #Limit
    limit_req_zone $binary_remote_addr  zone=xxx:10m rate=5r/s;
        #会话状态储存的空间10m,同一IP地址请求链接频率最多5次/秒
        
        #cache
        proxy_cache_path /dev/shm levels=1:2 keys_zone=cache_one:20m max_size=1g;
    #path:定义缓存放在磁盘的哪个目录下。此处表示定义在/usr/local/nginx/cache_dir目录下。      目录不存在会自动创建。
    #levels:定义缓存目录的级别,同时定义缓存目录名称的字符数。例如levels=1:2:2表示3级目录,且第一级目录名1个字符,第二级目录2个字符,第三级目录2个字符。目录最多3级,目录名最多为2个字符。例如上例中"levels=1:2"产生的缓存文件路径可能是这样的"/usr/local/nginx/cache_dir/d/f1/50a3269acaa7774c02d4da0968124f1d",注意其中加粗的字体。
    #keys_zone:定义缓存标识名称和内存中缓存的最大空间。name部分必须唯一,在后面会引用name来表示使用该缓存方法。
    #max_size:定义磁盘中缓存目录的最大空间。即path定义的文件最大空间。
    
    
    #Log format #日志格式
    
    log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
      '$status $body_bytes_sent "$http_referer" '
      '"$http_user_agent" $http_x_forwarded_for';
    
    server
    {
    listen 80 default;
    server_name _;
    return 403;
    }
    
    include vhosts/*.conf;  #导入vhosts中的conf文件
    
    }

  • 相关阅读:
    【异常记录(11)】 Web应用程序项目 已配置为使用 IIS。无法访问 元数据库。您没有足够的特权访问计算机上的 IIS 网站。Unable to access the IIS metabase. You do not have sufficient privilege to access IIS web sites on your machine.
    用 C# 计算 与 java 一致的unix时间戳 (长时间整形 如:1476956079961) Unix timestamps consistent with Java format,Implemented in C #
    【异常记录(十)】 接口调用,提示跨域 Cross-domain calling interface, Access-Control-Allow-Origin
    【异常记录(九)】 System.Threading.ThreadAbortException: 正在中止线程
    数据结构-kmp算法
    数据结构-线性表 (栈,队列,串)
    dfs序
    树上倍增
    网络流
    树状数组题目合集
  • 原文地址:https://www.cnblogs.com/Template/p/9818663.html
Copyright © 2011-2022 走看看