您的位置:首页 > 理论基础 > 计算机网络

nginx中http核心模块的配置指令4

2015-09-07 22:33 1976 查看

接上篇

  1. server_tokens on | off:配置是否显示nginx服务器的版本等信息,默认为on

  2. tcp_nodelay on | off:配置是否启用TCP中的TCP_NODELAY选项,该选项只有在TCP连接为keep-alive时生效,默认为on,关于TCP_NODELAY的解释如下:

    TCP_NODELAY和TCP_CORK基本上控制了包的“Nagle化”,这里我们主要讲TCP_NODELAY.Nagle化在这里的含义是采用Nagle算法把较小的包组装为更大的帧。JohnNagle是Nagle算法的发明人,后者就是用他的名字来命名的,他在1984年首次用这种方法来尝试解决福特汽车公司的网络拥塞问题(欲了解详情请参看IETF RFC 896)。他解决的问题就是所谓的silly window syndrome,中文称“愚蠢窗口症候群”,具体含义是,因为普遍终端应用程序每产生一次击键操作就会发送一个包,而典型情况下一个包会拥有一个字节的数据载荷以及40个字节长的包头,于是产生4000%的过载,很轻易地就能令网络发生拥塞,。Nagle化后来成了一种标准并且立即在因特网上得以实现。它现在已经成为缺省配置了,但在我们看来,有些场合下把这一选项关掉也是合乎需要的。例如在需要及时响应的场景中,我们就可以禁用该选项,让TCP的包尽快发送出去,并尽快获取响应消息。

  3. tcp_nopush on | off:配置是否启用TCP的TCP_NOPUSH选项(FreeBSD系统)或者TCP_CORK选项(Linux系统),该选项只有在启用sendfile选项时才生效,一般情况下,在TCP交互的过程中,当应用程序接收到数据包后马上传送出去,不等待,而ect_cork选项是数据包不会马上传送出去,而是等到数据包最大时,再一次性传送,这样有助于解决网络堵塞,该选项于tcp_nodelay互斥

  4. try_files file ... uri | file ... =code:检查设置的指定顺序的文件或目录是否存在,返回第一个存在的文件,如果指定的文件或目录都不存在,则会产生一个内部请求到配置的uri,具体配置见如下例子:

    location / {
    try_files $uri $uri/ @wordpress;
    }
    
    location ~ \.php$ {
    try_files $uri @wordpress;
    
    fastcgi_pass ...;
    
    fastcgi_param SCRIPT_FILENAME /path/to$fastcgi_script_name;
    ... other fastcgi_param's
    }
    
    location @wordpress {
    fastcgi_pass ...;
    
    fastcgi_param SCRIPT_FILENAME /path/to/index.php;
    ... other fastcgi_param's
    }
  5. types { ... }:配置文件类型和MIME type的对应关系,默认为

    types {
    text/html  html;
    image/gif  gif;
    image/jpeg jpg;
    }
  6. ngx_http_core_module模块的内置变量:

      $arg_name:请求行中的参数name
    • $agrs:请求行中的arguments
    • $binary_remote_addr:客户端的地址的二进制表示形式,4个字节
    • $body_bytes_sent:发送到客户端的字节数,不包括消息头
    • $bytes_sent:发送到客户端的字节数
    • $connection:连接的序列号
    • $connection_requests:一个连接的当前的请求数
    • $content_length:”Content-Length”消息头的值
    • $content_type:”Content-Type”消息头的值
    • $cookie_name:cookie的名称
    • $document_root:root或alias指令设置的值
    • $document_uri:同$uri
    • $host:按照如下顺序获取-请求行中的host name、请求头中的“Host”的值、匹配请求的server name
    • $hostname:主机名称
    • $http_name
    • $https:如果启用了https,则值为on,否则为空
    • $is_args:如果有查询参数则值为“?”,否则为空
    • $limit_rate
    • $msec:当前时间的微秒形式
    • $nginx_version
    • $pid
    • $pipe
    • $proxy_protocol_addr:代理协议头中的客户端的地址
    • $query_string:请求查询参数,同$agrs
    • $realpath_root:root或alias对应的绝对路径
    • $remote_addr:客户端的地址
    • $remote_port:客户端的端口
    • $remote_user:基本认证中的用户名
    • $request:完成的请求行的值
    • $request_body:请求的消息体
    • $request_body_file:请求的消息体对应的临时文件,请求结束后该文件需要删除
    • $request_completion:如果一个请求结束了则返回“OK”,否则为空
    • $request_filename:请求的文件名称
    • $request_length:请求的消息的长度包括消息头和消息体
    • $request_method:请求的方法
    • $request_time:请求处理的时间(包括微秒)
    • $request_uri:原始的请求URI
    • $scheme:http|https
    • $sent_http_name
    • $server_addr
    • $server_name
    • $server_port
    • $server_protocol
    • $status
    • $tcpinfo_rtt
    • $time_iso8601
    • $time_local
    • $uri
(adsbygoogle = window.adsbygoogle || []).push({});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nginx http
相关文章推荐